Woocommerce 动态结帐表单字段
Woocommerce Dynamic Checkout Form fields
我目前在 wordpress 网站上工作。我自定义了我的 woo commerce 结帐页面,以在我的 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 次。帮助任何人?
已更新 - 这可以很容易地在你的钩子函数中使用 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 文件。已测试并有效
我目前在 wordpress 网站上工作。我自定义了我的 woo commerce 结帐页面,以在我的 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 次。帮助任何人?
已更新 - 这可以很容易地在你的钩子函数中使用 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 文件。已测试并有效