Php 显示或隐藏其他签出自定义字段的自定义下拉选择器
我使用此代码创建自定义签出字段和重新排序字段:Php 显示或隐藏其他签出自定义字段的自定义下拉选择器,php,jquery,wordpress,woocommerce,checkout,Php,Jquery,Wordpress,Woocommerce,Checkout,我使用此代码创建自定义签出字段和重新排序字段: add_filter('woocommerce_checkout_fields'、'custom_checkout_billing_fields'); 功能自定义\结账\账单\字段($fields){ //1.创建其他自定义帐单字段 //“状态”选择器 $fields['billing']['billing_status']['type']='select'; $fields['billing']['billing_status']['class'
add_filter('woocommerce_checkout_fields'、'custom_checkout_billing_fields');
功能自定义\结账\账单\字段($fields){
//1.创建其他自定义帐单字段
//“状态”选择器
$fields['billing']['billing_status']['type']='select';
$fields['billing']['billing_status']['class']=array('form-row-wide,status select');
$fields['billing']['billing_status']['required']=true;
$fields['billing']['billing_status']['label']=['User status'、'my_theme_slug');
$fields['billing']['billing\u status']['placeholder']=\uuuuuu('selected an option','my\u theme\u slug');
$fields['billing']['billing_status']['options']=array(
''=>'选择了一个选项',
“1”=>“法人实体”,
“2”=>“个人”
);
//“序列ID”文本字段
$fields['billing']['billing_number_id']['type']='text';
$fields['billing']['billing_number_id']['class']=array('form-row-wide','status-group1');
$fields['billing']['billing\u number\u id']['required']=true;
$fields['billing']['billing\u number\u id']['label']=\u('Serial id','my\u theme\u slug');
$fields['billing']['billing\u number\u id']['placeholder']=\uuuuu('输入您的序列号','我的主题');
//自定义“账单公司”字段[“必需”]
$fields['billing']['billing_company']['required']=false;
//“序列ID”文本字段
$fields['billing']['billing_serial']['type']='text';
$fields['billing']['billing_serial']['class']=array('form-row-wide','status-group1');
$fields['billing']['billing_serial']['required']=false;
$fields['billing']['billing_serial']['label']=['serial ID','my_theme_slug');
$fields['billing']['billing\u serial']['placeholder']=\uuuuuu('输入您的序列号','my\u theme\u slug');
//2.自定义“计费电子邮件”和“计费电话”字段['class']
$fields['billing']['billing_email']['class']=array('form-row-first','status-group1');
$fields['billing']['billing_phone']['class']=array('form-row-last','status-group1');
//3.对账单字段进行排序
$fields\u顺序=数组(
“账单名”、“账单姓”、“账单电子邮件”,
‘账单电话’、‘账单地址1’、‘账单地址2’,
'账单邮政编码','账单城市','账单国家',
“账单状态”,
“账单公司”、“账单编号”、“账单序列号”
);
foreach($fields\u order as$field)$ordered\u fields[$field]=$fields['billing'][$field];
$fields['billing']=$ordered\u字段;
//返回结帐自定义帐单字段
返回$fields;
}
条件机制:
下拉选择器将打开单个
选项值,并将仅显示计费序列自定义字段billing\u status
下拉选择器切换到“Company”
**选项值时,将显示另外两个字段:
现有字段(在计费公司
)计费序列之前
自定义字段(在末尾)账单编号\u id
参考资料:适用于WooCommerce 3+(更新): 由于WooCommerce 3.0签出字段发生了一些变化,因此无法像以前那样对字段重新排序 有一个新的'priority'参数,用于处理字段顺序,也用于结帐字段和我的帐户字段 下面我只是更新与订购字段相关的部分:
## 3. Ordering the billing fields
// Set the order of the fields
$billing_fields_new_order = array(
'billing_first_name', 'billing_last_name', 'billing_email',
'billing_phone', 'billing_address_1', 'billing_address_2',
'billing_postcode', 'billing_city', 'billing_country',
'billing_status',
'billing_company', 'billing_number_id', 'billing_ser_id'
);
$count = 0;
$priority = 10;
// Updating the 'priority' argument
foreach($billing_fields_new_order as $field_name){
$count++;
$fields['billing'][$field_name]['priority'] = $count * $priority;
}
// END: returning the customized checkout fields
return $fields;
参考资料:
原始答案: 下面是一个带有jQuery/JS脚本的解决方案,可以使条件机制如您所期望的那样工作……php代码通过一些必要的函数完成 PHP代码(进入function.PHP):
//注册外部jQuery/JS文件
函数cfields_scripts(){
/*重要提示:对于子主题,请将get_template_directory_uri()替换为get_样式表_directory_uri()
外部cfields.js文件位于活动子主题或主题的子文件夹“js”中*/
wp_enqueue_script('checkout_script',get_template_directory_uri()。/js/cfields.js',array('jquery'),'1.0',true);
}
添加动作('wp_排队_脚本','cfields_脚本');
添加_过滤器('woocommerce_checkout_fields'、'custom_checkout_billing_fields');
功能自定义\结账\账单\字段($fields){
//1.创建其他自定义帐单字段
//“状态”选择器
$fields['billing']['billing_status']['type']='select';
$fields['billing']['billing_status']['class']=array('form-row-wide,status select');
$fields['billing']['billing_status']['required']=true;
$fields['billing']['billing_status']['label']=['User status'、'my_theme_slug');
$fields['billing']['billing\u status']['placeholder']=\uuuuuu('selected an option','my\u theme\u slug');
$fields['billing']['billing_status']['options']=array(
“1”=>u uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,
“2”=>(公司,”)
);
//自定义“账单公司”字段[“必需”]
$fields['billing']['billing_company']['required']=false;
$fields['billing']['billing_company']['class']=array('form-row-wide','status-group2');
//“编号ID”文本字段
$fields['billing']['billing_number_id']['type']='text';
$fields['billing']['billing_number_id']['class']=array('form-row-wide');
$fields['billing']['billing\u number\u id']['required']=true;
$fields['billing']['billing\u number\u id']['label']=\uuu('number id','my\u theme\u slug');
$fields['bil]