gpt4 book ai didi

php - 在 WooCommerce 3 中将结帐订单备注字段移动到 "create an account"上方

转载 作者:可可西里 更新时间:2023-11-01 00:39:45 24 4
gpt4 key购买 nike

我正在使用 WooCommerce 3.2.1 版,我尝试在我的主题 functions.php 中添加以下代码以移动订单备注结帐字段,但它不起作用:

add_filter( 'woocommerce_checkout_fields', 'bbloomer_move_checkout_fields_woo_3');
function bbloomer_move_checkout_fields_woo_3( $fields ) {
$fields['order']['order_comments']['priority'] = 8;
return $fields;
}

我想将订单备注文本区域字段移动到结帐页面上“create_account”复选框上方和“billing_postcode”字段下方。

我怎样才能让它发挥作用?

最佳答案

在下面的代码中:

  • 我删除了“订单备注”
  • 我添加了一个类似的自定义账单字段(名为“billing_customer_note”)
  • 我重新排序字段 (*)
  • 在结账时提交订单后,我将自定义账单字段“客户备注”数据添加为经典订单备注……

这是代码:

// Checkout fields customizations
add_filter( 'woocommerce_checkout_fields' , 'customizing_checkout_fields', 10, 1 );
function customizing_checkout_fields( $fields ) {
// Remove the Order Notes
unset($fields['order']['order_comments']);

// Define custom Order Notes field data array
$customer_note = array(
'type' => 'textarea',
'class' => array('form-row-wide', 'notes'),
'label' => __('Order Notes', 'woocommerce'),
'placeholder' => _x('Notes about your order, e.g. special notes for delivery.', 'placeholder', 'woocommerce')
);

// Set custom Order Notes field
$fields['billing']['billing_customer_note'] = $customer_note;

// Define billing fields new order
$ordered_keys = array(
'billing_first_name',
'billing_last_name',
'billing_company',
'billing_country',
'billing_address_1',
'billing_address_2',
'billing_city',
'billing_state',
'billing_postcode',
'billing_phone',
'billing_email',
'billing_customer_note', // <= HERE
);

// Set billing fields new order
$count = 0;
foreach( $ordered_keys as $key ) {
$count += 10;
$fields['billing'][$key]['priority'] = $count;
}

return $fields;
}

// Set the custom field 'billing_customer_note' in the order object as a default order note (before it's saved)
add_action( 'woocommerce_checkout_create_order', 'customizing_checkout_create_order', 10, 2 );
function customizing_checkout_create_order( $order, $data ) {
$order->set_customer_note( isset( $data['billing_customer_note'] ) ? $data['billing_customer_note'] : '' );
}

代码位于您的事件子主题(或主题)的 function.php 文件中或任何插件文件中。

经过测试并有效。

关于php - 在 WooCommerce 3 中将结帐订单备注字段移动到 "create an account"上方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47464206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com