【发布时间】:2020-08-03 03:32:55
【问题描述】:
在 WooCommerce 中,我正在尝试使用 "Customizing checkout fields using actions and filters" 官方文档添加自定义字段以进行结帐。所以我可以看到该字段并且效果很好,但问题是当我试图在管理面板中查看客户输入的信息时。
我正在使用simply show hooks 来查看触发了哪些钩子等等。而且我看不到woocommerce_admin_order_data_after_shipping_address 开火。我错过了什么?!这是我在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>';
}
【问题讨论】:
-
当
$order已经作为参数传递给函数时,为什么要通过$postid获取$order。只需使用$order->get_meta( '_shipping_time' ); -
我用的是你的方法,然后我测试了这个,因为它不起作用。
-
因此我的回答只包含部分解决方案,它是为您指出错误的方法
标签: php wordpress woocommerce hook-woocommerce orders