簡體   English   中英

隱藏地址(如果已完成)

[英]Hide address if already completed WooCommerce

我正在尋找一種方法,如果用戶已經填寫了帳單(根據先前的訂單,或者如果用戶先前已通過“我的帳戶”頁面填寫了帳單),則可以在woocommerce主題的結帳頁面上隱藏帳單地址。 )。

如果用戶已登錄(請參閱下文),我已經找到了在結帳頁面上完全隱藏開票/運輸表格的方法,但是我找不到上述方法。

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
    if( is_user_logged_in() ){
        unset($fields['billing']);
        $fields['billing'] = array();
    }
    return $fields;
}

任何想法?

謝謝!

這將取決於您認為是我完成了摘錄功能的完整地址,可以用來進一步發展。

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
    if( is_user_logged_in() && !has_billing()){
        unset($fields['billing']);
        $fields['billing'] = array();
    }
    return $fields;
}

// Check the meta of Postcode and Country if they are entered.
function has_billing($user_id = false){
            if(!$user_id)
                $user_id = get_current_user_id();

            $shipping_postcode = get_user_meta( $user_id, 'billing_postcode', true );
            $shipping_country = get_user_meta( $user_id, 'billing_country', true );

            // Fetch more meta for the condition has needed.  
            if($shipping_postcode && $shipping_country){
                return true;
            }

            return false;
}

注意:前綴shipping_包含一個用於計費的代碼( billing_ )。

編輯:在這里,元密鑰billing_address_1billing_address_2始終是前綴,可以是billing_shipping_

另外,如果由於某種原因您在用戶元密鑰中沒有關聯的送貨地址或帳單地址,但是客戶曾經下過訂單,則可以檢查此代碼以獲取訂單地址。

Woocommerce WC_Order get_shipping_address()不作為數組返回 (舊帖子可能不再有效)

暫無
暫無

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

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