Php 创建动态签出表单字段
我目前正在wordpress网站上工作。我定制了我的woo commerce结帐页面,以便在我的function.php子主题中包含一个附加的表单字段。它工作得很好Php 创建动态签出表单字段,php,wordpress,loops,woocommerce,checkout,Php,Wordpress,Loops,Woocommerce,Checkout,我目前正在wordpress网站上工作。我定制了我的woo commerce结帐页面,以便在我的function.php子主题中包含一个附加的表单字段。它工作得很好 add_action('woocommerce_在订单注释之后,'my_custom_checkout_字段'); 函数my_自定义_签出_字段($checkout){ 回显“.”(“新字段”); woocommerce\u表单\u字段('我的\u字段\u名称',数组( '类型'=>'文本', 'class'=>array('my-
add_action('woocommerce_在订单注释之后,'my_custom_checkout_字段');
函数my_自定义_签出_字段($checkout){
回显“.”(“新字段”);
woocommerce\u表单\u字段('我的\u字段\u名称',数组(
'类型'=>'文本',
'class'=>array('my-field-class表单行宽'),
“label'=>”(填写此字段),
“占位符”=>“‘输入某物’”,
),$checkout->get_value('my_field_name');
回声';
}
我希望根据订购的产品数量重复此表单字段。假设我订购了一个产品3次,我希望表单字段在结帐时出现3次。帮助任何人?已更新-这可以通过挂钩函数中的两个循环轻松实现:
- 第一个循环遍历每个购物车项目
- 与数量相关的每个单位的第二个
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>';
}
add_action('woocommerce_在订单注释之后,'my_custom_checkout_字段',20,1);
函数my_自定义_签出_字段($checkout){
$index=0;
回显“.”(“新字段”);
//第一个循环遍历购物车项目
foreach(WC()->cart->get_cart()作为$cart_项目){
//第二个循环遍历与项目数量相关的每个单元
对于($i=1;$i“文本”,
'class'=>array('my-field-class表单行宽'),
“label'=>\(“填充此字段”)。$index,
“占位符”=>“‘输入某物’”,
),$checkout->get_value('my_field_name.$index));
}
}
回声';
}
代码进入活动子主题(或活动主题)的function.php文件。经过测试,工作正常。我得到了要求的结果