WooCommerce チェックアウト ページの [今すぐ支払う] ボタンのテキストを、支払いゲートウェイ オプションと一致するように変更します。
P粉395056196
2023-08-16 14:51:27
<p>もう何時間も試していますが、とにかくこの「基本的な」ことを動作させることができません。 </p>
<p>利用可能な支払いゲートウェイが多数あるので、[今すぐ支払う] ボタンのテキストにそれらの名前 (注文の合計金額を含む) を含める必要があります。 </p>
<p><strong>例</strong>: 「<code>注文 $49 の支払いに Stripe を使用します</code>」</p>
<p>ゲートウェイを変更するときにチェックアウトを自動的に更新するコードがあります。誰か助けてください。 </p>
<pre class="brush:php;toolbar:false;">add_filter( 'woocommerce_order_button_text', 'order_button_text_based_on_gateway', 10, 1 );
関数 order_button_text_based_on_gateway( $cart ) {
// 支払いゲートウェイを取得していることを確認します
$payment_method = WC()->session->get( 'chosen_payment_method' );
// 異なるゲートウェイに基づいて、異なるボタン テキスト (注文ボタン) を表示します
if ( $payment_method == ' bacs ' ) {
return sprintf( '%s %s', __('注文して支払う', 'woocommerce'),
trip_tags( WC()->cart->get_total() ) . 'WireTransfer を使用' );
}
elseif ( $payment_method == ' チェック ' ) {
return sprintf( '%s %s', __('注文して支払う', 'woocommerce'),
trip_tags( WC()->cart->get_total() ) . '個人小切手を使用する' );
}
elseif ( $payment_method == ' cod ' ) {
return sprintf( '%s %s', __('注文して支払う', 'woocommerce'),
trip_tags( WC()->cart->get_total() ) . '代金引換' );
}
elseif ( $payment_method == ' etco ' ) {
return sprintf( '%s %s', __('注文して支払う', 'woocommerce'),
trip_tags( WC()->cart->get_total() ) . 'EtCo を使用' );
}
else ( $payment_method == ' ストライプ ' ) {
return sprintf( '%s %s', __('注文して支払う', 'woocommerce'),
trip_tags( WC()->cart->get_total() ) . 'ストライプを使用' );
}
}</pre>
<p><strong>自動更新チェックアウト スクリプト: </strong></p>
<pre class="brush:php;toolbar:false;">add_action( 'wp_footer', 'reload_checkout_based_on_gateway_change', 999 );
関数 reload_checkout_based_on_gateway_change() {
if ( is_checkout() && ! is_admin() ) {
//PHPを終了してSCRIPTを開始する
?>
<スクリプト>
( 関数( $ ) {
$( 'form.checkout' ).on( 'change', 'input[name^="支払い方法"]', function() {
$( 'body' ).trigger( 'update_checkout' );
}
);
}
)
(jQuery);
</スクリプト>
<?php
}
}</pre>
<p><br /></p>
コードに多くのエラーがあります:
'cheque'
と'cheque'
は 2 つの異なる文字列です。つまり、すべての if ステートメントの中で、一致する支払い方法はありません。
else
が条件パラメータをサポートしていないことです。チェックアウトの「注文する」ボタンのテキストを変更するには、いくつかの方法があります:
リーリーまたは、以下に示すように、
コードを子テーマのfunctions.phpファイル(またはプラグイン)に配置します。テスト済みで、正常に動作します。WC_Payment_Gateway
のorder_button_text
属性を使用することもできます。 リーリー