在WooCommerce中,我想使用str_replace()
替换billing_phone字段中的一些字符。
我尝试了以下代码:
add_action( 'woocommerce_checkout_process', 'phone_replace' );
function phone_replace( $order_id ) {
if (! empty( $_POST['billing_phone'] ) ) {
str_replace( array('۱'), array('1'), $_POST['billing_phone'] );
}
}
但它不起作用。
这是正确的钩子吗?
答案 0 :(得分:1)
要在结算电话上使用str_replace()
,右侧挂钩始终相同:
add_action( 'woocommerce_checkout_update_order_meta', 'update_order_meta_billing_phone' );
function update_order_meta_billing_phone( $order_id ) {
if ( ! empty( $_POST['billing_phone'] ) ) {
// Check and update
$billing_phone = str_replace( array('۱'), array('1'), $_POST['billing_phone'] );
update_post_meta( $order_id, '_billing_phone', sanitize_text_field( $phone_sabet ) );
## User data billing phone ##
// Get the user ID
$user_id = get_post_meta( $order_id, '_customer_user', true );
// Get the billing phone user data
$user_billing_phone = get_user_meta( $user_id, 'billing_phone', true );
// Check and update
if( ! empty ( $user_billing_phone ) ) {
$user_billing_phone = str_replace( array('۱'), array('1'), $user_billing_phone );
update_user_meta( $user_id, 'billing_phone', $user_billing_phone );
} else {
update_user_meta( $user_id, 'billing_phone', $billing_phone );
}
}
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
经过测试和工作