Php 根据Woocommerce签出中的产品类别更改“电子邮件”标签

Php 根据Woocommerce签出中的产品类别更改“电子邮件”标签,php,wordpress,woocommerce,checkout,custom-taxonomy,Php,Wordpress,Woocommerce,Checkout,Custom Taxonomy,我试图在结帐页面上为特定类别显示不同的电子邮件标签 例如: 我在该网站上销售礼品卡,因此我想将电子邮件字段重命名为收件人电子邮件,但此特定标签应仅在礼品产品类别中可见 我找不到此特定解决方案的任何WooCommerce函数。感谢您的帮助。更新:如果购物车中有礼品类别,则以下内容将更改账单电子邮件标签: // Change billing email label if "Gift" product category is in cart add_filter( 'woocommerce_check

我试图在结帐页面上为特定类别显示不同的电子邮件标签

例如: 我在该网站上销售礼品卡,因此我想将电子邮件字段重命名为收件人电子邮件,但此特定标签应仅在礼品产品类别中可见

我找不到此特定解决方案的任何WooCommerce函数。感谢您的帮助。

更新:如果购物车中有礼品类别,则以下内容将更改账单电子邮件标签:

// Change billing email label if "Gift" product category is in cart
add_filter( 'woocommerce_checkout_fields', 'change_billing_email_label' );
function change_billing_email_label($fields){
    foreach(WC()->cart->get_cart() as $cart_item) {
        if( has_term( "Gifts", "product_cat", $cart_item["product_id"] ) ){
            $fields['billing']['billing_email']['label'] = __("Recipient Email", "woocommerce");
            break;
        }
    }

    return $fields;
}

代码进入活动子主题或活动主题的function.php文件。它应该可以工作。

多亏了LoicTheAztec

我只需要更改下面的代码行,从他的代码

foreach(WC()->cart->get_cart() => $cart_item) {
用这个

foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {