Php 在签出中添加自定义字段,并将其显示在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

在WooCommerce中,我尝试使用官方文档向签出添加一个自定义字段。因此,我可以看到该字段,它运行良好,但问题是当我试图在管理面板中查看客户输入的信息时

我用它来看看什么样的钩子被发射等等。在发送地址后,我看不到
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>';
}