当前位置: 首页 > 知识库问答 >
问题:

Woocommerce订单格式化账单地址重新订购和自定义账单字段

蒲深
2023-03-14
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;
}

有什么想法吗?

提前感谢!

共有1个答案

喻嘉泽
2023-03-14

是的,这里的解释是:

我们将注册新的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' ),

    );

    $order = array(
        "first_name",
        "last_name",
        "vat",
        "company",
        "country",
        "address_1", 
        "address_2", 
        "city",
        "state",
        "postcode"
    );

    foreach($order as $field) {

        $ordered_fields[$field] = $fields[$field];

    }

    $fields = $ordered_fields;

    return $fields;

}

然后添加新的字段“VAT”只到邮件的帐单注册字段,我们不希望它出现在地址文件部分。

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;

}
 类似资料:
  • 我正试图在结帐时将定制费用计入订单总额。我在woocommerce中添加了一个复选框 包含一个自定义js文件,可用于处理事件 和一个php费用处理函数 由于某些原因,$_POST['state']的值没有被添加,当我给出一个硬编码值时,函数会工作,我尝试了很多选项,但无法让它工作。 我看过类似的帖子,但没有一个有答案。

  • WooCommerce默认使用post ID作为订单号,post可以是订单,也可以是产品、页面、文章或其它的custom post type,所以这个ID是不连续的,人们并不能简单的通过订单号去猜测你网站的销量。但这也给商店管理者带来一定困扰,拿到一个订单号,却无法知道是什么时候的订单,是哪个商店的订单。所以要给订单号加前缀,前缀里带上具体时间和一个序号,就能解决这个问题。 用代码自定义订单号的显

  • 使用以下代码,我可以在WooCommerce产品上获得一个自定义字段,但是如何在订单、结帐和管理订单(后端)上显示它呢? 这是我在每个产品上的自定义字段 这是我的管理订单(后端)详细信息。我尝试显示我在每个产品帖子中输入的正确元数据。 如何在管理订单中显示我在自定义字段中输入的值?我也希望有人能帮助我显示在订单和结帐页面的元。。。或者引导我走向正确的方向。我意识到,为了在管理订单中显示它,我必须确

  • 我正在为一个自定义的woocommerce结帐表单的多选字段而挣扎。 我通过函数创建了自定义multislect字段: 请注意,woocommerce函数无法创建自定义多选字段,因此这里有一个简单的选择字段。 我决定使用jQuery以这种方式添加多个缺失的属性: 现在我有了multiselect字段,它看起来像: 问题是,顺序元值没有正确更新,它每次只显示一个值,而不是一个数组的值,如果人选择一个

  • 我在使用一个定制的结帐字段时遇到了困难,该字段在第一次订购时可用,但在同一客户的连续订单中不会出现。 简而言之,我有一个自定义字段,它是一个卡号。在客户注册时,询问客户是否想要购买购物卡。如果客户标记该选项,则会将一个带有“y”的字段添加到user_meta表中。然后店主将通过电子邮件向客户发送卡号。 客户第一次下单时,在结账页面中会出现卡号自定义字段:客户必须添加商店获得的卡号。然后,订单与卡号

  • 说明 alipay.fund.trans.order.query(查询转账订单接口) 官方文档:https://docs.open.alipay.com/api_28/alipay.fund.trans.order.query/ 类 请求参数类 请求参数 类名:\Yurun\PaySDK\AlipayApp\Fund\Query\Request 属性 名称 类型 说明 $method string