ホームページ  >  に質問  >  本文

WooCommerce チェックアウト ページの [今すぐ支払う] ボタンのテキストを、支払いゲートウェイ オプションと一致するように変更します。

<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>
P粉395056196P粉395056196401日前609

全員に返信(1)返信します

  • P粉594941301

    P粉5949413012023-08-17 10:10:22

    コードに多くのエラーがあります:

    • 主なエラーは文字列に関するものです。'cheque''cheque' は 2 つの異なる文字列です。
      つまり、すべての if ステートメントの中で、一致する支払い方法はありません。
    • もう 1 つのエラーは、else が条件パラメータをサポートしていないことです。

    チェックアウトの「注文する」ボタンのテキストを変更するには、いくつかの方法があります:

    リーリー

    または、以下に示すように、WC_Payment_Gatewayorder_button_text 属性を使用することもできます。 リーリー

    コードを子テーマのfunctions.phpファイル(またはプラグイン)に配置します。テスト済みで、正常に動作します。

    返事
    0
  • キャンセル返事