1 回答

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
更新
現(xiàn)在要過濾僅保留數(shù)字的電話號(hào)碼字符串,您可以更好地
preg_replace()
使用str_replace()
.
下面,帳單電話號(hào)碼在保存之前將被過濾:
WordPress 管理員用戶儀表板
我的帳戶地址 編輯帳單地址
下訂單后(保存數(shù)據(jù)之前)
代碼:
// In Wordpress user profile (increased hook priority)
add_action( 'personal_options_update', 'save_user_billing_phone_fields', 999999 );
add_action( 'edit_user_profile_update', 'save_user_billing_phone_fields', 999999 );
function save_user_billing_phone_fields( $user_id ) {
$field_key = 'billing_phone';
if( isset($_POST[$field_key]) && ! empty($_POST[$field_key]) ) {
// Filtering billing phone (removing everything else than numbers)
$billing_phone = preg_replace( '/[^0-9]/', '', sanitize_text_field($_POST[$field_key]) );
// Update the billing phone
update_user_meta( $user_id, 'billing_phone', $billing_phone );
}
}
// On My account > edit addresses > Billing
add_action( 'woocommerce_process_myaccount_field_billing_phone', 'filter_my_account_billing_phone_fields' );
function filter_my_account_billing_phone_fields( $value ) {
return preg_replace( '/[^0-9]/', '', $value );
}
// On order submission
add_action( 'woocommerce_checkout_posted_data', 'wc_checkout_posted_data_filter_callback' );
function wc_checkout_posted_data_filter_callback( $data ) {
$field_key = 'billing_phone';
if( isset($data[$field_key]) ) {
// Filtering billing phone (removing everything else than numbers)
$data[$field_key] = preg_replace( '/[^0-9]/', '', $data[$field_key] );
}
return $data;
}
代碼位于活動(dòng)子主題(或活動(dòng)主題)的functions.php 文件中。經(jīng)過測(cè)試并有效。
- 1 回答
- 0 關(guān)注
- 143 瀏覽
添加回答
舉報(bào)