在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 }
感谢您的帮助。
答案 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文件中。经过测试,可以正常工作。
此小代码段将完成所有操作。如果您在“送货电话”字段中更改值,则无需任何其他代码即可对其进行更新。
答案 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 ); ?>
不显示字段内容