在Woocommerce中“客户运送”部分下的“管理员用户”中添加其他字段

时间:2018-10-04 16:32:16

标签: php wordpress woocommerce backend account

在woocommerce中,使用以下代码在自定义php文件中创建并注册了一些自定义帐户字段后:

<label for="reg_shipping_phone"> ... </label>
<input  class="..." id="reg_shipping_phone" name="shipping_phone" 
        type="tel" pattern="[a-z0-9.-]{6,40}"
        title=" ... " placeholder=" ... "
        value="<?php esc_attr_e( $_POST['shipping_phone'] ); ?>" />

以及我主题的function.php文件中:

//save on admin/&frontend on change
add_action( 'personal_options_update', 'woo_save_extra_register_fields' );    
add_action( 'woocommerce_save_account_details', 'woo_save_extra_register_fields' );

// Save extra registration fields data on from
add_action( 'woocommerce_created_customer', 'woo_save_extra_register_fields' );
function woo_save_extra_register_fields( $customer_id )
{
if( isset( $_POST['shipping_phone'] ) ) {
        update_user_meta( $customer_id, 'shipping_phone',  $_POST['shipping_phone'] );
    }
}

我想在“客户的收货地址”部分表内的“后端用户”个人资料页上的正确位置实现“送货电话”字段

如何在“客户的收货地址”部分的表中插入其他字段?

例如,我尝试了以下*(但 11,5 是错误的...)*:

add_action( 'show_user_profile', 'extra_profile_fields',***11,5*** );
add_action( 'edit_user_profile', 'extra_profile_fields',***11,5*** );

function extra_profile_fields( $user ) { ?>


    <h3>NAME OF TABLE</h3>

    <table class="form-table">

        <tr>
            <th><label for="shipping_phone">SHIPPING PHONE</label></th>

            <td>
                <input type="text" name="shipping_phone" id="shipping_phone" value="<?php echo esc_attr(  $user->shipping_phone); ?>" class="regular-text" />
            </td>
        </tr>
>

    </table>
<?php }

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

如果要在“用户的收货地址”部分下的“后端用户”个人资料中添加自定义的“发运电话”字段,请改用以下内容:

add_filter( 'woocommerce_customer_meta_fields', 'filter_add_customer_meta_fields', 10, 1 );
function filter_add_customer_meta_fields( $args ) {
    $args['shipping']['fields']['shipping_phone'] = array(
        'label'       => __( 'Shipping phone', 'woocommerce' ),
        'description' => '',
    );
    return $args;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。

enter image description here

  

此小代码段将完成所有操作。如果您在“送货电话”字段中更改值,则无需任何其他代码即可对其进行更新。

答案 1 :(得分:0)

我更改了以下内容

add_filter( 'woocommerce_customer_meta_fields', 'filter_add_customer_meta_fields', 10, 1 );
function filter_add_customer_meta_fields( $args ) {
    $args['billing']['fields']['shipping_phone'] = array(
        'label'       => __( 'CIF/NIF/DNI', 'woocommerce' ),
        'description' => '',
    );
    return $args;
}

我的管理员显示该字段完美...但是

<?php echo esc_attr( $user->shipping_phone ); ?>

不显示字段内容