亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Woocommerce 在結帳頁面觸發“訂單審核”更新

Woocommerce 在結帳頁面觸發“訂單審核”更新

PHP
慕勒3428872 2021-11-13 15:03:19
我正在使用Jeroen Sormani的Woocommerce Advanced Shipping 插件作為運輸方式,并使用Karolína Vysko?ilová的WooCommerce Pay for Payment 插件向“貨到付款”付款方式添加 5 歐元的固定費用。使用 Advanced Shipping Plugin,我還創建了一個稱為“本地取貨”的一般規則,以便客戶始終可以看到。Then I needed to hide the "cash on delivery" payment method when the "local pickup" shipping option is selected. 為此,我必須在我的functions.php 文件中添加一些代碼,以便在高級運輸規則中識別特定的本地取貨規則:function my_custom_available_payment_gateways( $gateways ) {    $chosen_shipping_rates = WC()->session->get( 'chosen_shipping_methods' );    // When 'local pickup' (rule id 21828) has been chosen as shipping rate    if ( in_array( '21828', $chosen_shipping_rates ) ) :        // Unset 'cash on delivery'        unset( $gateways['cod'] );    endif;return $gateways;}add_filter( 'woocommerce_available_payment_gateways', 'my_custom_available_payment_gateways' );這是我的問題:在結帳頁面中,當我切換到“本地取貨”時,“貨到付款”選項如前所述消失了,但訂單審核表中的 5 歐元費用保留在那里。我必須再次手動切換付款方式(即從銀行轉賬到信用卡)才能使費用消失。我需要找到一些解決方案來在選擇本地取貨時觸發訂單審核更新/刷新。我嘗試在結帳頁面中插入以下腳本但沒有成功function woocommerce_add_update_cart() {    // Only on checkout page    if( ! is_checkout() ) return;    ?>    <script type="text/javascript">    jQuery(document.body).trigger("update_checkout");    </script>    <?php}add_action( 'wp_footer', 'woocommerce_add_update_cart' );
查看完整描述

2 回答

?
浮云間

TA貢獻1829條經驗 獲得超4個贊

您可以添加以下代碼片段 -


function refresh_checkout_on_payment_methods_change(){

    ?>

    <script type="text/javascript">

        (function($){

            $( 'form.checkout' ).on( 'change', 'input[name^="shipping_method"]', function() { 

                $('body').trigger('update_checkout');

            });

        })(jQuery);

    </script>

    <?php

}


add_action( 'woocommerce_review_order_before_payment', 'refresh_checkout_on_payment_methods_change' );



查看完整回答
反對 回復 2021-11-13
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

我設法解決了我的問題。$('body').trigger('update_checkout');itzmekhokan 建議的功能不起作用,以便從更新的訂單審查中刪除額外費用。我必須模擬點擊其中一種付款方式單選按鈕來觸發結帳更新。


對于結帳頁面:


function woocommerce_add_update_checkout() {

    // Only on checkout page

    if( ! is_checkout() ) return;

    ?>

    <script type="text/javascript">

    (function($){

        $('form.checkout').on( 'change', 'input[name^="shipping_method"]', function() {

        document.getElementById("payment_method_bacs").checked = true;

        });

    })(jQuery);

    </script>

    <?php

}

add_action( 'wp_footer', 'woocommerce_add_update_checkout' );

對于購物車頁面摘要:


function reset_payment_method() {

    // Only on cart page

    if( ! is_cart() ) return;

    $payment_method = WC()->session->get( 'chosen_payment_method' );

    if ( $payment_method = 'cod' ) :

        WC()->session->set( 'chosen_payment_method', 'bacs' );

    endif;

}

add_filter( 'woocommerce_before_shipping_calculator', 'reset_payment_method' );


查看完整回答
反對 回復 2021-11-13
  • 2 回答
  • 0 關注
  • 170 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號