WooCommerce 结帐字段 html 自定义问题

WooCommerce Checkout Field html customization issue

在 Woocommerce 中,我使用以下代码向特定结帐字段添加脚注:

add_action( 'woocommerce_form_field_text','add_address_disclaimer', 100, 2 );
function add_address_disclaimer( $field, $key ){
    global $woocommerce;    
    if ( is_checkout() && ( $key == 'billing_address_2') ) {
        $field .= '<div class="fields-shipping-disclaimer"><p>' . __('We cannot ship to PO Boxes and FPO/APO addresses.') . '</p></div>';
    }
    return $field;
}

它在初始化时正常工作...脚注显示在账单地址 2 字段下方:

但是,在更新任何触发 "update checkout" 选项的字段时,自定义脚注不会反映在刷新的结帐字段中:

有人知道为什么会这样吗?

首先,您使用的挂钩是 过滤器挂钩 而不是动作挂钩,因此应该使用 add_filter() 而不需要 global $woocommerce;

试试这个代码版本 (没有 div 标签)

add_filter( 'woocommerce_form_field_text' , 'add_address_disclaimer', 10, 2 );
function add_address_disclaimer( $field, $key) {
    if ( is_checkout() && $key == 'billing_address_2' ) {
        $text   = __("We cannot ship to PO Boxes and FPO/APO addresses.");
        $field .= '<p class="form-row fields-shipping-disclaimer">'.$text.'</p>';
    }
    return $field;
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。测试和工作 (停留在 update_checkout JS 事件).

相关主题: