我已经在WordPress网站上安装了WooCommerce结帐和帐户字段编辑器插件,用于向结帐页面添加其他字段。安装此插件的目的是向结帐页面添加三个附加字段,例如how_you_heard_about_our_store
,user_membership_level
和user_refferer_name
,以便从用户那里获取更多详细信息。
这很好,用户可以在结帐时根据需要提供所需的信息。但是,当此产品在结帐页面上时,有一种产品Gift Certificate
需要排除这些其他字段。
目的是仅在此产品上隐藏这些字段。我对该产品有4种不同的变体,我需要为每个变体隐藏这些字段。
我已经尝试了以下技术,但这实际上是针对默认的WooCommerce字段的。
此外,我也尝试过以下操作,但没有运气:
function custom_override_checkout_fields( $fields ) {
unset($fields['order']["how_heard"]);
unset($fields['order']["member_level"]);
return $fields;
}
是否有任何特定操作或过滤器可用于从结帐页面中删除其他字段?任何帮助将不胜感激。
答案 0 :(得分:0)
add_filter( 'woocommerce_checkout_fields' , 'hide_checkout_fields' );
function hide_checkout_fields( $fields ) {
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
$id = $product->get_id();
$products = array(2516, 584, 2454); // Product Ids
if (in_array($id, $products))
{
unset($fields['order']['how_heard']);
unset($fields['order']['member_level']);
}
}
return $fields;
}