2016-09-09 4 views
0

WooCommerceカートでは、請求先住所に出荷するようにデフォルトを設定できます。ユーザーは、異なる配送先住所を有効にするためにボックスをチェックすることができます。返品するお客様には、もう一度チェックボックスをチェックする必要があります。私は、ログインしたユーザーのチェックボックスの状態を覚えておきたいので、アドレス情報だけでなく、チェックボックスの状態も最後の注文と同じです。WooCommerce Checkoutでユーザー設定を保持する方法 - 異なる住所に配送する

答えて

1

出荷または請求に余分なフィールドを追加して、WooCommerceにストレージを処理させるスニペットが公開されています。他の例では、データがポストに蓄積されるカスタムフィールドが表示されます。これは注文では維持されますが、次の注文では利用できません。

私は上記の自分の質問に次のように答えました。まず、ユーザメタのチェックボックスの状態を保存し、あなたの子供のテーマのfunctions.phpでアクションを持っている:

/** 
* Update the user meta with checkbox setting 
*/ 
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta'); 

function my_custom_checkout_field_update_order_meta($order_id) { 
    $order = new WC_Order($order_id); 
    update_user_meta($order->user_id , 'shipping_different',$_POST['ship_to_different_address']) ; 
} 

は、次に保存されたチェックボックスの値を取得し、チェックボックスを更新するためのアクションを追加します。

/* 
* Get the user meta to set the checkbox if needed 
*/ 

add_action('woocommerce_after_checkout_billing_form', 'my_checkout_fields', 10,1); 

function my_checkout_fields($checkout) { 
    $user_id = get_current_user_id(); 
    if ($user_id !=0) { 
     if (get_user_meta($user_id, 'shipping_different', true) == 1) 
     add_filter('woocommerce_ship_to_different_address_checked',  '__return_true'); 
    } 
} 

コメント?改善?

関連する問題