WooCommerce结账页添加字段无效,是否与Boutique Designer Shop主题有关?
WooCommerce结账页添加公司名字段无效的排查方案
主题导致的可能性极高
很多免费主题会自定义WooCommerce的结账模板,直接覆盖了默认钩子(比如你用的woocommerce_before_order_notes),导致代码和插件的触发逻辑失效。可以按以下步骤验证和解决:
先验证是否是主题问题
临时切换到WooCommerce官方默认主题Storefront,重新测试你的代码或插件功能。如果切换后字段能正常显示,那100%是当前「Boutique Designer Shop」主题的问题。确认是主题问题后的解决办法
修改主题结账模板(需用子主题)
找到主题目录下的woocommerce/checkout/form-checkout.php或相关结账模板文件,在账单信息区域手动插入公司名字段代码:<p class="form-row form-row-wide"> <label for="billing_company"><?php _e( '公司名称', 'woocommerce' ); ?> <?php if ( wc_get_option( 'woocommerce_checkout_company_field_required' ) ) : ?><span class="required">*</span><?php endif; ?></label> <input type="text" class="input-text" name="billing_company" id="billing_company" value="<?php echo esc_attr( $checkout->get_value( 'billing_company' ) ); ?>" /> </p>注意:必须先创建并启用主题的子主题,再修改模板,避免主题更新后丢失修改内容。
尝试替换其他钩子
部分主题只是禁用了特定钩子,试试其他结账相关钩子,比如woocommerce_checkout_after_customer_details,用标准的WooCommerce字段函数添加:add_action('woocommerce_checkout_after_customer_details', 'add_custom_company_field' ); function add_custom_company_field() { woocommerce_form_field( 'billing_company', array( 'type' => 'text', 'class' => array('form-row-wide'), 'label' => __('公司名称'), 'required' => false, // 按需设置是否必填 ), WC()->checkout->get_value( 'billing_company' )); }检查主题设置
有些主题会在自定义izer或主题选项里设置「隐藏结账额外字段」的开关,检查是否有相关选项被开启,关闭后再测试。
内容的提问来源于stack exchange,提问作者IrinaB
相关产品推荐
相关产品推荐

