2016-07-22 133 views
0

因此,我堅持將第二個自定義結賬字段添加到我的商店。多個woocommerce自定義結帳字段

第一個自定義字段是單選按鈕,它直接添加到模板字段。另一個是相同的單選按鈕,但具有不同的ID和名稱。

送貨部分工作正常,但該私人標籤不保存,並且在訂單完成後不顯示在管理區域。

這是我已經有,我做錯了什麼?

/** 
* Update the user meta with field value 
**/ 
add_action('woocommerce_checkout_update_user_meta', 'my_custom_checkout_field_update_user_meta'); 
function my_custom_checkout_field_update_user_meta($user_id) { 
    if ($user_id && $_POST['shippinng']) update_user_meta($user_id, 'shippinng', esc_attr($_POST['shippinng'])); 
    if ($user_id && $_POST['private']) update_user_meta($user_id, 'private', esc_attr($_POST['private'])); 
} 


/** 
* Update the order meta with field value 
**/ 
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta'); 

function my_custom_checkout_field_update_order_meta($order_id) { 
    if ($_POST['shippinng']) update_post_meta($order_id, 'Transport', esc_attr($_POST['shippinng'])); 
    if ($_POST['private']) update_post_meta($order_id, 'Private label', esc_attr($_POST['private'])); 
} 


/** 
* Display field value on the order edit page 
*/ 
add_action('woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1); 

function my_custom_checkout_field_display_admin_order_meta($order){ 
    echo '<p><strong>'.__('Transport').':</strong> ' . get_post_meta($order->id, 'Transport', true) . '</p>'; 
    echo '<p><strong>'.__('Private label').':</strong> ' . get_post_meta($order->id, 'Private label', true) . '</p>'; 
} 


/** 
* Add the field to order emails 
**/ 
add_filter('woocommerce_email_order_meta_keys', 'my_custom_checkout_field_order_meta_keys'); 
function my_custom_checkout_field_order_meta_keys($keys) { 
    $keys[] = 'Transport'; 
    $keys[] = 'Private label'; 
    return $keys; 
} 

回答

0

您必須註冊專用標籤才能保存。我建議下載結帳字段編輯器並檢查代碼以進行學習。根據我的經驗,比較一直是一個很好的模式:)

相關問題