Php 在新订单自定义字段中加载用户自定义数据

Php 在新订单自定义字段中加载用户自定义数据,php,ajax,wordpress,woocommerce,orders,Php,Ajax,Wordpress,Woocommerce,Orders,受答案代码的启发,我能够添加2个新的账单和发货字段,代码如下: //结账和我的账户(添加)单元号和楼层号 添加_过滤器('woocommerce_billing_fields'、'custom_field_billing_extra'); 功能自定义\字段\账单\额外($fields){ $fields['billing\u house\u number']=数组( 'type'=>'text',//选择字段类型 //“标签”=>“‘自定义标签(账单)’,‘woocommerce’”, 'cla

受答案代码的启发,我能够添加2个新的账单和发货字段,代码如下:

//结账和我的账户(添加)单元号和楼层号
添加_过滤器('woocommerce_billing_fields'、'custom_field_billing_extra');
功能自定义\字段\账单\额外($fields){
$fields['billing\u house\u number']=数组(
'type'=>'text',//选择字段类型
//“标签”=>“‘自定义标签(账单)’,‘woocommerce’”,
'class'=>array('form-row-first my custom class'),//也可以是'form row first'或'form row last'
'required'=>false,//可选
'clear'=>true,//可选
“优先级”=>61,//要更改字段位置,请增加或减少此值
“占位符”=>“‘单元号’、‘自定义域’”,
);
/////////////////////////////
$fields['billing\u floor\u number']=数组(
'type'=>'text',//选择字段类型
//“标签”=>“‘自定义标签(账单)’,‘woocommerce’”,
'class'=>array('form-row-last我的自定义类'),//也可以是'form row first'或'form row last'
'required'=>false,//可选
'clear'=>true,//可选
“优先级”=>61,//要更改字段位置,请增加或减少此值
“占位符”=>“‘楼层编号’、‘自定义域’”,
);
返回$fields;
}
添加_过滤器('woocommerce_shipping_fields'、'custom_field_shipping_extra');
功能自定义\字段\发货\额外($fields){
$fields['shipping\u house\u number']=数组(
'type'=>'text',//选择字段类型
//“标签”=>“‘自定义标签(账单)’,‘woocommerce’”,
'class'=>array('form-row-first my custom class'),//也可以是'form row first'或'form row last'
'required'=>false,//可选
'clear'=>true,//可选
“优先级”=>61,//要更改字段位置,请增加或减少此值
“占位符”=>“‘单元号’、‘自定义域’”,
);
/////////////////////////////
$fields['shipping\u floor\u number']=数组(
'type'=>'text',//选择字段类型
//“标签”=>“‘自定义标签(账单)’,‘woocommerce’”,
'class'=>array('form-row-last我的自定义类'),//也可以是'form row first'或'form row last'
'required'=>false,//可选
'clear'=>true,//可选
“优先级”=>61,//要更改字段位置,请增加或减少此值
“占位符”=>“‘楼层编号’、‘自定义域’”,
);
返回$fields;
}
//管理可编辑单订单发货和计费新字段
添加过滤器('woocommerce\u admin\u billing\u fields'、'admin\u order\u page\u new\u fields');
添加过滤器(“woocommerce\u admin\u shipping\u fields”、“admin\u order\u page\u new\u fields”);
功能管理\订单\页面\新建\字段($fields){
//包括装运电话作为可编辑字段
$fields['house_number']=array('label'=>'house_('house number','custom domain'),'show'=>'0');
$fields['floor_number']=数组('label'=>'floor_('floor number','custom domain'),'show'=>'0');
返回$fields;
}
//管理员可编辑用户发送新字段
添加过滤器(“woocommerce\u customer\u meta\u fields”、“user\u new\u field\u account”);
函数用户\新建\字段\帐户($fields){
$fields['billing']['fields']['house_number'][type]=$fields['shipping']['fields']['house_number'][type]='text';
$fields['billing']['fields']['house_number'][label]=$fields['shipping']['fields']['house_number'][label]=['house_number'][label]=['house number','custom domain');
$fields['billing']['fields']['house_number'][description]=$fields['shipping']['fields']['house_number'][description]='house number';
$fields['billing']['fields']['floor\u number'][type]=$fields['shipping']['fields']['floor\u number'][type]='text';
$fields['billing']['fields']['floor_number'][label]=$fields['shipping']['fields']['floor_number'][label]=['floor_'number',自定义域];
$fields['billing']['fields']['floor_number'][description]=$fields['shipping']['fields']['floor_number'][description]='floor_number';
返回$fields;
}
//将自定义字段添加到电子邮件
添加行动(“商业、电子邮件、客户、详细信息”、“将房屋、编号、字段添加到电子邮件、通知”19、4);
函数将\房屋\编号\字段\添加到\电子邮件\通知($order,$sent \发送给\管理员,$plain \文本,$email){
$output='';
$shipping\u house\u number=get\u post\u meta($order->id,'u shipping\u house\u number',true);
如果(!空($shipping\u house\u number))
$output.=''.\uuuu('House Number:','custom domain')。'.$shipping\u House\u Number';
echo$输出;
}
添加行动(“woocommerce\u email\u customer\u details”、“添加楼层号\u checkout\u字段\u到\u emails\u notifications”,20,4);
功能添加\楼层\编号\结帐\字段\至\电子邮件\通知($order,$sent \至\管理员,$plain \文本,$email){
$output='';
$shipping\u floor\u number=get\u post\u meta($order->id,'u shipping\u floor\u number',true);
如果(!空($shipping\u floor\u number))
$output.=''。uu('Floor Number:','custom domain')。'.$shipping_ufloor_unumber';
echo$输出;
}
这是伟大的工作,但当我从后端创建一个手动订单的价值观并没有得到拉从用户数据,他们总是空的

我遗漏了什么?

您的代码中有一些错误:现在可以在管理员用户页面上正确显示和更改用户数据

在创建手动新订单时,还缺少一些代码,可以通过Ajax加载其他自定义地址字段

我还对管理员订单可编辑地址和管理员用户仪表板上正确位置的自定义字段进行了排序(重新排序)

所以我完全重新审视了你的代码。第一个函数处理加载的自定义字段设置