0
ですから、私のストアに2番目のカスタムチェックアウトフィールドを追加することができません。複数のwoocommerceカスタムオーダーチェックアウトフィールド
最初のカスタムフィールドはラジオボタンで、テンプレートフィールドに直接追加されます。もう1つは同じラジオボタンですが、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;
}