我目前正在使用wordpress网站。我定制了我的woo commerce checkout页面,在我的function.php子主题中包含了一个带有此代码的附加表单字段。效果很好。
add_action('woocommerce_after_order_notes', 'my_custom_checkout_fields');
function my_custom_checkout_fields($checkout){
echo '<div id="my_custom_checkout_fields"><h2>' .__('New Field').'</h2>';
woocommerce_form_field('my_field_name', array(
'type' =>'text',
'class'=>array('my-field-class form-row-wide'),
'label'=>__('Fill this field'),
'placeholder'=>__('Enter Something'),
), $checkout->get_value('my_field_name'));
echo '</div>';
}
我想让这个表单字段根据订购产品的数量重复。假设我订购了一个产品3次,我希望表格字段在结账时出现3次。帮助任何人?
答案 0 :(得分:1)
已更新 - 您可以轻松使用已挂钩功能中的2个循环:
例如,如果您有2个购物车项目:第一个数量为3,第二个数量为2,您将获得5个自定义结帐文本字段。
add_action('woocommerce_after_order_notes', 'my_custom_checkout_fields', 20, 1 );
function my_custom_checkout_fields( $checkout ){
$index = 0;
echo '<div id="my_custom_checkout_fields"><h2>' .__('New Field').'</h2>';
// First Loop go through cart items
foreach( WC()->cart->get_cart() as $cart_item ) {
// 2nd Loop go through each unit related to item quantity
for( $i = 1; $i <= $cart_item['quantity']; $i++ ) {
$index++;
woocommerce_form_field('my_field_name_'.$index, array(
'type' =>'text',
'class'=>array('my-field-class form-row-wide'),
'label'=>__('Fill this field') . ' ' . $index,
'placeholder'=>__('Enter Something'),
), $checkout->get_value('my_field_name_'.$index));
}
}
echo '</div>';
}
代码进入活动子主题(或活动主题)的function.php文件。经过测试和工作