• Resolved masatoigarashi

    (@masatoigarashi)


    Paidyのコンビニ払いの決済手数料が税込み350円から356円になるということで、チェックアウトページに表記されている手数料の箇所を修正しようと思ったのですが、ハードコードされており管理画面の決済設定からは変更を行うことができません。

    ソースを確認しましたら、

        function payment_fields() {
            // Description of payment method from settings
            ?>
            <br />
            <a href="https://paidy.com/consumer" target="_blank">
                <img src="<?php echo WC_PAIDY_PLUGIN_URL;?>assets/images/checkout_banner_320x100.png" alt="Paidy 翌月まとめてお支払い" style="max-height: none; float: none;"></a>
            <br />
            <p><?php echo $this->description; ?></p>
            <br />
            <ul>
                <li style="list-style: disc !important;">口座振替(支払手数料:無料)</li>
                <li style="list-style: disc !important;">コンビニ(支払手数料:350円税込)</li>
                <li style="list-style: disc !important;">銀行振込(支払手数料:金融機関により異なります)</li>
            </ul>
            Paidyについて詳しくは<a href="https://paidy.com/whatspaidy" target="_blank">こちら</a>。
            <?php
        }

    となっており、プラグインソースの直接編集以外に対応が難しくなっています。
    また文字の大きさなどCSSで表示体裁を変更しようとしても、
    htmlのマークアップが構造化されておらず(タグのないテキストノード,CSSの!importantをつかったスタイリング,改行コードを使ったレイアウト等)
    まさにハードコーディングという感じになっています。

    取り急ぎの対応として、以下のフィルターフックをつかって強引に対応しています。

    
    add_filter( 'woocommerce_available_payment_gateways', 'change_custom_payment_description' );
    function change_custom_payment_description( $available_gateways ) {
    	if (! is_checkout() ):
    		return $available_gateways; 
    	endif;
    	if (array_key_exists('paidy', $available_gateways)):
    		$available_gateways['paidy'] -> description = 
    <<<EOF
    		<div id="paidy-description">
    			<style type="text/css" media="all">
    			#payment_method_paidy {
    				margin-bottom:0;
    			}
    			.payment_box.payment_method_paidy {
    				display:none;
    			}
    			#paidy-banner {
    				display:block;
    				margin:10px 0;
    				text-align:center;
    			}
    			#paidy-banner img {
    				max-height:100px;
    				max-width:85%;
    			}
    			#paidy-content {
    				margin:10px 0;
    			}
    			
    			#paidy-methods {
    				margin:10px 0;
    				padding:0;
    			}
    			#paidy-methods li {
    				list-style:disc inside;
    			}
    			#paidy-methods li span {
    				font-size:95%;
    				padding-left:0.2em;
    			}
    			</style>
    			<script>
    			jQuery(function($) {
    				$('.payment_box.payment_method_paidy').html($("#paidy-description").html());
    				$('.payment_box.payment_method_paidy').show();
    			});
    			</script>
    			<a id="paidy-banner" href="https://paidy.com/consumer" target="_blank">
                	<img src="/PATH/paidy_banner_320x100.png" alt="Paidy 翌月まとめてお支払い">
    			</a>
    			
    			<p id="paidy-content">
    				メールアドレスと携帯電話番号のみで利用できる、ペーパーレス後払い決済のPaidyをご利用いただけます。<br>
    				月に何回お買い物をしても、お支払いは翌月にまとめて1回。お支払いには、以下方法がご利用いただけます。
    			</p>
    			
    			<ul id="paidy-methods">
    				<li>口座振替<span>(手数料:無料)</span></li>
    				<li>コンビニ<span>(手数料:税込356円)</span></li>
    				<li>銀行振込<span>(手数料:銀行毎に異なります)</span></li>
    			</ul>
    			<p id="paidy-detail">Paidyについて詳しくは<a href="https://paidy.com/whatspaidy" target="_blank">こちら</a>。</p>
    		</div>
    EOF;
    	endif;
    	return $available_gateways;
    }
    

    jQueryで非表示化やhtmlの入れ替えを行っており、かなり強引な形となっています。
    こちらについて、管理画面から変更可能なdescription以外の箇所はハックなことをせずとも編集可能にしていただくか、フィルターフックを追加していただき外部関数から変更可能にしていただけるなどのご対応をお願いします。
    ※githubでソースコードを管理いただけるようでしたらプルリクエストをお送りします。

Viewing 4 replies - 1 through 4 (of 4 total)
  • Plugin Author shohei.tanaka

    (@shoheitanaka)

    masatoigarashi様

    すいません。こちらのサポートの対応が出来ておりませんでした。

    最新のプラグインで対応できていると思うのですが、出来ていませんでしょうか?

    また、ハードコードとなっている理由が決済会社からの要求でありまして。
    ただ、今回のような事もありますので、次のバージョン等でhookをつけるようにします。

    ご確認して頂けると幸いです。

    Thread Starter masatoigarashi

    (@masatoigarashi)

    決済手数料箇所のハードコードが356円になっているのは確認できましたが???
    フィルターフックでなくとも、せめてCSSベースで非表示化できるよう、HTMLを構造化していただければと思います。
    <?php echo $this->description; ?>
    とそれ以外の箇所をdivでくくっていただくだけでも結構です。

    
        function payment_fields() {
            // Description of payment method from settings
            ?>
    <div class="paidy-hardcode">
            <br />
            <a href="https://paidy.com/consumer" target="_blank" rel="noopener noreferrer">
                <img />assets/images/checkout_banner_320x100.png" alt="Paidy 翌月まとめてお支払い" style="max-height: none; float: none;"></a>
            <br />
    </div>
    <div class="paidy-softcode">
            <p><?php echo $this->description; ?></p>
    </div>
    <div class="paidy-hardcode">
            <br />
            <ul>
                <li style="list-style: disc !important;">口座振替(支払手数料:無料)</li>
                <li style="list-style: disc !important;">コンビニ(支払手数料:350円税込)</li>
                <li style="list-style: disc !important;">銀行振込(支払手数料:金融機関により異なります)</li>
            </ul>
            Paidyについて詳しくは<a href="https://paidy.com/whatspaidy" target="_blank" rel="noopener noreferrer">こちら</a>。
    </div>
            <?php
        }
    
    Plugin Author shohei.tanaka

    (@shoheitanaka)

    こちら、次のバージョンで対応をさせて頂きます。
    hookと<div>の両方で対応致しますので、数日お待ち下さい。

    Plugin Author shohei.tanaka

    (@shoheitanaka)

    masatoigarashi様

    プラグインをアップデートして、今までの問題が発生しないように
    大幅改善しましたのでご確認頂ければと思います。

Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘チェックアウトページの決済説明箇所のハードコードの編集について’ is closed to new replies.