首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果在woocommerce中为空,则将账单地址保存到自定义结帐字段

如果在woocommerce中为空,则将账单地址保存到自定义结帐字段
EN

Stack Overflow用户
提问于 2017-10-25 22:55:45
回答 1查看 726关注 0票数 0

我遵循了一个教程,关于如何包括在woocommerce的结账自定义字段,一切工作如预期,但我想保存完整的账单地址到这个自定义字段,如果没有填写。

这就是我的东西

代码语言:javascript
复制
function cloudways_save_extra_checkout_fields( $order_id, $posted ){
// don't forget appropriate sanitization if you are using a different field type
if( isset( $posted['cloudways_text_field'] ) ) {
    update_post_meta( $order_id, '_cloudways_text_field', sanitize_text_field( $posted['cloudways_text_field'] ) );

if(empty($posted['cloudways_text_field']))
    {
    // it's empty!
        update_post_meta( $order_id, '_cloudways_text_field', sanitize_text_field( $posted['cloudways_text_field'] ) );
    }
else
    {
        update_post_meta( $order_id, '_cloudways_text_field', sanitize_text_field( $posted['cloudways_text_field'] ) );
    }    

}

} add_action( 'woocommerce_checkout_update_order_meta','cloudways_save_extra_checkout_fields',10,2 );

但是如果没有填写,我不知道如何将帐单地址数组保存到这个自定义文本字段中。

教程的链接是https://www.cloudways.com/blog/how-to-edit-delete-fields-and-email-in-woocommerce-custom-checkout-fields/amp/

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-10-26 00:59:11

您可以尝试将地址构建到数组中,并将其保存在字段中。或者您也可以将其构建为字符串,这取决于您希望字段包含什么数据,字符串或数组。下面是一个数组的示例:

代码语言:javascript
复制
function cloudways_save_extra_checkout_fields( $order_id, $posted ) {
    // don't forget appropriate sanitization if you are using a different field type
    if ( isset( $posted['cloudways_text_field'] ) ) {
        update_post_meta( $order_id, '_cloudways_text_field', sanitize_text_field( $posted['cloudways_text_field'] ) );

        if ( empty( $posted['cloudways_text_field'] ) ) {
            $billing_address_array = array(
                'billing_address_1' => $posted['billing_address_1'],
                'billing_address_2' => $posted['billing_address_2'],
                'billing_city'      => $posted['billing_city'],
                'billing_postcode'  => $posted['billing_postcode'],
                'billing_state'     => $posted['billing_state'],
                'billing_country'   => $posted['billing_country'],
            );
            update_post_meta( $order_id, '_cloudways_text_field', wc_clean( $billing_address_array ) );
        } else {
            update_post_meta( $order_id, '_cloudways_text_field', sanitize_text_field( $posted['cloudways_text_field'] ) );
        }
    }
}
add_action( 'woocommerce_checkout_update_order_meta', 'cloudways_save_extra_checkout_fields', 10, 2 );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46935696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档