【问题标题】:Woocommerce order formatted billing address reorder and custom billing fieldWoocommerce 订单格式的帐单地址重新排序和自定义帐单字段
【发布时间】:2016-08-18 16:04:25
【问题描述】:

感谢过滤器“WooCommerce 管理员帐单字段”,我已通过电子邮件订购了通知页脚中的帐单字段,但是当我尝试插入自定义帐单字段时,没有出现。

add_filter( 'woocommerce_order_formatted_billing_address' , 'woo_reorder_billing_fields', 10, 2 );

function woo_reorder_billing_fields( $address, $wc_order ) {

    $address = array(
        'first_name'    => $wc_order->billing_first_name,
        'last_name'     => $wc_order->billing_last_name,
        'company'       => $wc_order->billing_company,
        'my_field'      => $wc_order->billing_my_field,
        'country'       => $wc_order->billing_country
        );

    return $address;
}

为了进行管理员编辑,我可以通过过滤器“woocommerce_admin_billing_fields”显示我的自定义计费字段,首先添加该字段,然后重新排序数组。

我注意到我之前添加了这个字段,并且我在结帐时使用过滤器“woocommerce_checkout_fields”重新排序了这个字段。

如果“$ wc_order”对象将字段存储在结帐中,为什么不显示我的自定义字段?

有什么想法吗?

提前致谢!

【问题讨论】:

  • 我找到了解决方案,它在“class-wc-countries”中,格式为帐单地址。我很快就会写出解决方案
  • 检查此链接可能是您的问题解决方案:wordpress.stackexchange.com/questions/120347/…
  • @RonnieEsponja:你是怎么解决的?
  • 下面回答,Sefran2。

标签: wordpress woocommerce e-commerce woothemes


【解决方案1】:

是的,这里是解释:

我们将注册新的 cusotm 字段,在本例中为“VAT”字段,用于存储欧盟公司的财务文件。有很多关于如何注册自定义字段并在管理/用户面板中显示它们的文档。

add_filter( 'woocommerce_default_address_fields', 'woo_new_default_address_fields' );

function woo_new_default_address_fields( $fields ) {

    $fields['vat'] = array(

        'label' => __( 'VAT number', 'woocommerce' ),
        'class' => array( 'form-row-wide', 'update_totals_on_change' ),

    );
    
    return $fields;

}

然后将新字段“增值税”仅添加到邮件计费字段的注册中,我们不希望它出现在地址字段部分中。

add_filter( 'woocommerce_order_formatted_billing_address' , 'woo_custom_order_formatted_billing_address', 10, 2 );

function woo_custom_order_formatted_billing_address( $address, $WC_Order ) {
    
    $address = array(
        'first_name'    => $WC_Order->billing_first_name,
        'last_name'     => $WC_Order->billing_last_name,
        'vat'           => $WC_Order->billing_vat,
        'company'       => $WC_Order->billing_company,
        'address_1'     => $WC_Order->billing_address_1,
        'address_2'     => $WC_Order->billing_address_2,
        'city'          => $WC_Order->billing_city,
        'state'         => $WC_Order->billing_state,
        'postcode'      => $WC_Order->billing_postcode,
        'country'       => $WC_Order->billing_country
        );
    
    return $address;

}

以下代码自定义地址的外观,这是我们必须添加对新增值税字段的调用的地方。这使我们可以独立地为每个国家/地区自定义地址视图。

add_filter( 'woocommerce_formatted_address_replacements', function( $replacements, $args ){
    
    $replacements['{vat}'] = $args['vat'];
    return $replacements;

}, 10, 2 );

add_filter( 'woocommerce_localisation_address_formats' , 'woo_includes_address_formats', 10, 1);

function woo_includes_address_formats($address_formats) {

    $address_formats['ES'] = "{name}\n{company}\n{vat}\n{address_1}\n{address_2}\n{postcode} {city}\n{state}\n{country}";
    $address_formats['default'] = "{name}\n{company}\n{vat}\n{nif}\n{address_1}\n{address_2}\n{city}\n{state}\n{postcode}\n{country}";
    
    return $address_formats;

}

有什么问题可以问!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 2019-12-28
    相关资源
    最近更新 更多