簡體   English   中英

在Woocommerce中根據購物車數量添加自定義結帳字段

[英]Add a custom checkout field based on cart items quantity in Woocommerce

最終,當我的客戶在結賬時超過一定數量時,我會嘗試在woocommerce中添加一個結帳字段。 對於這個例子,我使用的是500,只是嘗試在結帳的底部顯示一條消息。

我一直在嘗試各種代碼變體,這是我到目前為止所擁有的。

add_action( 'woocommerce_after_checkout_form', 'woocommerce_add_quantity_message', 12 );

function woocommerce_add_quantity_message() {
global $woocommerce;
$total_products = 0;
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) 
{
$total_products += $values['quantity'];
}

if($total_products >=500 )
{
echo '<div class="card_discount_message"><p>MORE THAN 500 WOAHHHH</p></div>';
}

任何指針都將非常感激。 我也嘗試修改這里找到的代碼沒有運氣woocommerce根據數量添加到購物車的費用

更新

您無法在結帳表單之外設置自定義結帳字段。

因此,這個自定義字段只能位於結帳表單的末尾,這是在訂單備注之后。

嘗試以下代碼,一旦達到特定購物車商品數量(訂單備注后) ,將顯示自定義結帳字段:

add_action( 'woocommerce_after_order_notes', 'add_field_based_quantity', 20, 1 );
function add_field_based_quantity( $checkout ) {
    if( WC()->cart->get_cart_contents_count() >= 500 ) {
        echo '<div id="my_custom_checkout_field"><h2>' . __('My Field') . '</h2>';

        woocommerce_form_field( 'my_field_name', array(
            'type'          => 'text',
            'class'         => array('my-field-class form-row-wide'),
            'label'         => __('Fill in this field'),
            'placeholder'   => __('Enter something'),
        ), $checkout->get_value( 'my_field_name' ));

        echo '</div>';
    }
}

代碼位於活動子主題(或活動主題)的function.php文件中。 經過測試和工作。

在此輸入圖像描述

該代碼基於Woocommerce官方文檔: 添加自定義特殊結帳字段

因此,您將在該文檔中看到如何在訂單中保存此自定義字段以及您將如何顯示它...


如果您願意,可以使用以下代碼在末尾添加自定義通知:

add_action( 'woocommerce_after_checkout_form', 'woocommerce_add_quantity_message', 20 );
function woocommerce_add_quantity_message() {
    if( WC()->cart->get_cart_contents_count() >= 500 ) {
        wc_print_notice( __("MORE THAN 500 WOAHHHH !", "woocommerce"), 'notice');
    }
}

代碼位於活動子主題(或活動主題)的function.php文件中。 測試和工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM