【发布时间】:2019-08-12 19:20:24
【问题描述】:
我正在尝试在结帐页面上显示自定义产品字段 checkout_name,但我似乎无法弄清楚如何。我正在关注here 的结帐挂钩视觉指南。
add_action( 'woocommerce_checkout_before_customer_details', 'custom_before_checkout_form', 10 );
function custom_before_checkout_form( $cart_data ){
$meta_key = 'checkout_name';
$product_id = $cart_item['product_id'];
$meta_value = get_post_meta( $product_id, $meta_key, true );
if( !empty( $cart_data ) )
$custom_items = $cart_data;
if( !empty($meta_value) ) {
$custom_items[] = array(
'key' => __('Store Name', 'woocommerce'),
'value' => $meta_value,
'display' => $meta_value,
);
}
return $custom_items;
}
【问题讨论】:
-
自定义结帐字段必须在结帐表单内部。如果不是,则不会在提交时发布字段值。
-
我明白了,
woocommerce_before_checkout_billing_form会在表格内吗?我也试过那个钩子,但它不起作用。我希望显示帐单详细信息周围的字段,而不是订单详细信息。 -
请查看Woocommerce template
checkout/form-checkout.php代码...您将看到<form>标记内部(之后)有哪些钩子... 注意: 模板@987654323 @ 和 checkout/form-shipping.php 在其中被调用(还有其他一些),以获取信息。 -
好像
woocommerce_before_checkout_billing_form在里面还是我遗漏了什么? -
但在“form”标签之后也显示了钩子:
woocommerce_checkout_before_customer_details。因此,如果不可能的话,最好在此处显示该字段,然后在woocommerce_before_checkout_billing_form
标签: php wordpress woocommerce hook-woocommerce