Php 在签出中添加自定义字段,并将其显示在WooCommerce管理订单页面中
在WooCommerce中,我尝试使用官方文档向签出添加一个自定义字段。因此,我可以看到该字段,它运行良好,但问题是当我试图在管理面板中查看客户输入的信息时 我用它来看看什么样的钩子被发射等等。在发送地址后,我看不到Php 在签出中添加自定义字段,并将其显示在WooCommerce管理订单页面中,php,wordpress,woocommerce,hook-woocommerce,orders,Php,Wordpress,Woocommerce,Hook Woocommerce,Orders,在WooCommerce中,我尝试使用官方文档向签出添加一个自定义字段。因此,我可以看到该字段,它运行良好,但问题是当我试图在管理面板中查看客户输入的信息时 我用它来看看什么样的钩子被发射等等。在发送地址后,我看不到woocmerce\u admin\u order\u data\u。我错过了什么?!以下是我在functions.php文件中的代码: add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fie
woocmerce\u admin\u order\u data\u。我错过了什么?!以下是我在functions.php
文件中的代码:
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
// Our hooked in function - $fields is passed via the filter!
function custom_override_checkout_fields( $fields ) {
unset($fields['billing']['billing_address_2']);
unset($fields['shipping']['shipping_address_2']);
$fields['billing']['shipping_time'] = array(
'type' => 'select',
'label' => __('Laikas', 'woocommerce'),
'placeholder' => _x('Laikas', 'placeholder', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide'),
'clear' => true,
'options' => array(
'option_1' => 'nesvarbu',
'option_2' => '8-12',
'option_3' => '12-16',
'option_4' => '16-20'
)
);
return $fields;
}
add_action( 'woocommerce_admin_order_data_after_shipping_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );
function my_custom_checkout_field_display_admin_order_meta($order){
global $post_id;
$order = new WC_Order( $post_id );
echo '<p><strong>'.__('Laikas').':</strong> ' . get_post_meta($order->get_id(), '_shipping_ftime', true ) . '</p>';
}
add_filter('woocommerce_checkout_fields'、'custom_override_checkout_fields');
//我们的挂钩函数-$字段通过过滤器传递!
函数自定义\覆盖\签出\字段($fields){
未设置($fields['billing']['billing_address_2']);
未设置($fields['shipping']['shipping_address_2']);
$fields['billing']['shipping_time']=array(
'类型'=>'选择',
“标签”=>“‘Laikas’、‘woocommerce’”,
“占位符”=>x('Laikas','placeholder','woocommerce'),
“必需”=>true,
'class'=>array('form-row-wide'),
“清除”=>正确,
“选项”=>数组(
“选项_1”=>“nesvarbu”,
'选项2'=>'8-12',
'选项3'=>'12-16',
“选项四”=>“16-20”
)
);
返回$fields;
}
添加操作('woocommerce\u admin\u order\u data\u after\u shipping\u address'、'my\u custom\u checkout\u field\u display\u admin\u order\u meta',10,1);
函数my\u custom\u checkout\u field\u display\u admin\u order\u meta($order){
全球$post_id;
$order=新WC\U订单($post\U id);
回显“”。“'Laikas'”:”。获取发布元($order->get\u id(),“'u shipping\u ftime',true)。“”;
}
add_filter('woocommerce_checkout_fields'、'custom_override_checkout_fields');
//我们的挂钩函数-$字段通过过滤器传递!
函数自定义\覆盖\签出\字段($fields){
未设置($fields['billing']['billing_address_2']);
未设置($fields['shipping']['shipping_address_2']);
$fields['billing']['shipping_time']=array(
'类型'=>'选择',
'label'=>uuu('Laikas','woocommerce'),
“占位符”=>x('Laikas','placeholder','woocommerce'),
“必需”=>true,
'class'=>数组('form row wide'),
“清除”=>正确,
“选项”=>数组(
“选项_1”=>“nesvarbu”,
'选项2'=>'8-12',
'选项3'=>'12-16',
“选项四”=>“16-20”
)
);
返回$fields;
}
添加操作('woocommerce\u admin\u order\u data\u after\u shipping\u address'、'my\u custom\u checkout\u field\u display\u admin\u order\u meta',10,1);
函数my\u custom\u checkout\u field\u display\u admin\u order\u meta($order){
全球$post_id;
$order=新WC\U订单($post\U id);
$options=array(
“选项_1”=>“nesvarbu”,
'选项2'=>'8-12',
'选项3'=>'12-16',
“选项四”=>“16-20”
);
回显“”。uuuu('Laikas')。:。$options[get_post_meta($order->get_id(),'u shipping_time',true)]。;
}
请尝试此片段。
add_filter('woocommerce_checkout_fields'、'custom_override_checkout_fields');
//我们的挂钩函数-$字段通过过滤器传递!
函数自定义\覆盖\签出\字段($fields){
未设置($fields['billing']['billing_address_2']);
未设置($fields['shipping']['shipping_address_2']);
$fields['billing']['shipping_time']=array(
'类型'=>'选择',
'label'=>uuu('Laikas','woocommerce'),
“占位符”=>x('Laikas','placeholder','woocommerce'),
“必需”=>true,
'class'=>数组('form row wide'),
“清除”=>正确,
“选项”=>数组(
“选项_1”=>“nesvarbu”,
'选项2'=>'8-12',
'选项3'=>'12-16',
“选项四”=>“16-20”
)
);
返回$fields;
}
添加操作('woocommerce\u admin\u order\u data\u after\u shipping\u address'、'my\u custom\u checkout\u field\u display\u admin\u order\u meta',10,1);
函数my\u custom\u checkout\u field\u display\u admin\u order\u meta($order){
全球$post_id;
$order=新WC\U订单($post\U id);
$options=array(
“选项_1”=>“nesvarbu”,
'选项2'=>'8-12',
'选项3'=>'12-16',
“选项四”=>“16-20”
);
回显“”。uuuu('Laikas')。:。$options[get_post_meta($order->get_id(),'u shipping_time',true)]。;
}
请试一试这个片段。嗨,我试过你的剪发,可惜还是一样result@KarolisBeliašas-请查看屏幕截图。这就是你要尝试的对吗?是的。这就是我想要的。嗨,我试过你的剪子,可惜还是一样result@KarolisBeliašas-请查看屏幕截图。这就是你要尝试的对吗?是的。这就是我想要的。既然$order
已作为参数传递给函数,为什么要通过$postid
获取$order
。只需使用$order->get_meta('u shipping_time')
我使用了你的方法,然后我测试了它,因为它不起作用。因此,我的答案只包含部分解决方案,它是指向错误的方法当$order
已作为参数传递给函数时,为什么要通过$postid
获取$order
。只需使用$order->get_meta('u shipping_time')代码>我使用了你的方法,然后我测试了它,因为它不起作用。因此,我的答案只包含了部分解决方案,它是指给你一个错误的方法
add_filter( 'woocommerce_checkout_fields', 'custom_override_checkout_fields' );
// Our hooked in function - $fields is passed via the filter!
function custom_override_checkout_fields( $fields ) {
unset( $fields[ 'billing' ][ 'billing_address_2' ] );
unset( $fields[ 'shipping' ][ 'shipping_address_2' ] );
$fields[ 'billing' ][ 'shipping_time' ] = array(
'type' => 'select',
'label' => __( 'Laikas', 'woocommerce' ),
'placeholder' => _x( 'Laikas', 'placeholder', 'woocommerce' ),
'required' => true,
'class' => array( 'form-row-wide' ),
'clear' => true,
'options' => array(
'option_1' => 'nesvarbu',
'option_2' => '8-12',
'option_3' => '12-16',
'option_4' => '16-20'
)
);
return $fields;
}
add_action( 'woocommerce_admin_order_data_after_shipping_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );
function my_custom_checkout_field_display_admin_order_meta( $order ) {
global $post_id;
$order = new WC_Order( $post_id );
$options = array(
'option_1' => 'nesvarbu',
'option_2' => '8-12',
'option_3' => '12-16',
'option_4' => '16-20'
);
echo '<p><strong>' . __( 'Laikas' ) . ':</strong> ' . $options[get_post_meta( $order->get_id(), '_shipping_time', true )] . '</p>';
}