Advertisement

如何在woocommerce訂單總計後加上第二種貨幣價格並顯示+後台訂單備註顯示

為購物網站備註第二種貨幣

研究了整天終於完成我的需求

我的購物網站只需要兩種貨幣共同顯示

但是結帳時必須指定一種貨幣結帳

所以我的後台設定了結帳所指定的貨幣

並安裝可供轉換的貨幣外掛

但是問題出現在結帳時,只會顯示新台幣的金額

也就是說,當我外掛改成港幣的時候

結帳時貨幣將轉換成新台幣

香港顧客可能會覺得資訊混亂,一下港幣一下新台幣?

故第一階段

我在訂單結帳的頁面底下

加上了如果選擇指定付款方式結帳,總計下會加一行並顯示港幣金額

效果如下
選港幣付款方式出現港幣金額

結帳總計下顯示第二種貨幣之步驟

後台>佈景主題編輯器>你正在使用的主題>functions.php

在底下空白處加上以下函數:

// 增加港幣
add_action( 'woocommerce_review_order_after_order_total', 'review_order_after_order_total_callback' );
function review_order_after_order_total_callback(){
    $amount = WC()->cart->cart_contents_total;

    $chosen_gateway = WC()->session->get( 'chosen_payment_method' );
     if ( $chosen_gateway == 'bacs' ) {
?><th>港幣總計</th><td>HKD$ <?php echo round($amount * 0.28) ; ?> </td><?php
}
}

bacs 更改成你指定的付款方式代碼

港幣總計、HKD$ 更改成你要顯示的文字

round(...) 四捨五入到整數


接著加上以下函數(如果【附加費用教學】已加過以下函數,就不需要重複):

// 重新整理總計區塊
    
add_action( 'woocommerce_review_order_before_payment', 'bbloomer_refresh_checkout_on_payment_methods_change' );
    
function bbloomer_refresh_checkout_on_payment_methods_change(){
    ?>
    <script type="text/javascript">
        (function($){
            $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() {
                $('body').trigger('update_checkout');
            });
        })(jQuery);
    </script>
    <?php
}



收到訂單備註第二種貨幣

效果如下

步驟

打開文件>../wp-content/plugins/woocommerce/templates/checkout/thankyou.php

找到 <?php echo wp_kses_post( $order->get_formatted_order_total() ); ?>

在之後加上以下函數:
|HKD$ <?php echo round( $order->order_total* 0.28 ) ; ?>

 






收到訂單之詳細資料加上第二種貨幣

步驟

打開文件>../wp-content/plugins/woocommerce/templates/order/order-details.php

找到:
 <td><?php echo ( 'payment_method' === $key ) ? esc_html( $total['value'] ) : wp_kses_post( $total['value'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></td>
</tr>
<?php
}
?>


在之後加上以下函數:
<tr>
<th>港幣總計</th><td>HKD$ <?php echo round( $order->order_total* 0.28 ) ; ?></td>
</tr>




最後:後台訂單備註上貨幣資訊



後台>佈景主題編輯器>你正在使用的主題>functions.php

在底下空白處加上以下函數:

// 後台訂單加備註
function kia_display_order_data_in_admin( $order ){  ?>
    <div class="order_data_column">
        <h4><?php _e( '港幣總計' ); ?></h4>
        HKD$ <?php echo round( $order->order_total* 0.28 ) ; ?>
    </div>
<?php }
add_action( 'woocommerce_admin_order_data_after_order_details', 'kia_display_order_data_in_admin' );



以上操作完成就可以在 訂單、下單完成、後台 看見備註的貨幣訊息

補充

寄給顧客的 訂單確認信 明細加上第二種貨幣顯示

修改文件 ../wp-content/plugins/woocommerce/templates/emails/email-order-details.php
找到 </tfoot> 
在其上一行加上加上以下函數:

<tr>
    <th class="td" scope="row" colspan="2" style="text-align:<?php echo esc_attr( $text_align ); ?>;">港幣總計</th><td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>;">HKD$ <?php echo round( $order->order_total* 0.28 ) ; ?></td>
    </tr>

效果如下: