1
我需要替換自定義結帳字段中的某個字符。WooCommerce結帳字段:在帖子元字段值上使用str_replace
這是我的自定義結賬場的整個代碼,(也許我們可以在這裏使用str_replace函數)
/* Add the field to the checkout */
add_action('woocommerce_after_checkout_billing_form', 'my_custom_checkout_field');
function my_custom_checkout_field($checkout) {
echo '<div id="my_custom_checkout_field">';
woocommerce_form_field('phone_sabet', array(
'type' => 'tel',
'required' => true,
'clear' => true,
'class' => array('my-field-class form-row-first'),
'label' => __(''),
'placeholder' => __(''),
'description' => '',
), $checkout->get_value(('phone_sabet')));
echo '</div>';
}
這是代碼時的自定義字段要更新的部分
/* Update the order meta with field value */
add_action('woocommerce_checkout_update_order_meta','my_custom_checkout_field_update_order_meta');
function my_custom_checkout_field_update_order_meta($order_id) {
if (! empty($_POST['phone_sabet'])) {
update_post_meta($order_id, 'Phone', sanitize_text_field($_POST['phone_sabet']));
}
}
我厭倦了使用str_replace並將其更改爲下面,但沒有運氣。
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta');
function my_custom_checkout_field_update_order_meta($order_id) {
if (! empty($_POST['phone_sabet'])) {
update_post_meta($order_id, 'Phone', sanitize_text_field($_POST['phone_sabet']));
$getMeta = get_post_meta(get_the_ID(), 'Phone', true);
$newMeta = str_replace(array('۱'), '1', $getMeta);
update_post_meta(get_the_ID(), 'Phone', $newMeta);
}
}
,這是結帳時現場去處理的部分。它可以,如果我們可以用str_replace在這裏完成它。
/* Process the checkout */
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');
function my_custom_checkout_field_process() {
if ($_POST['phone_sabet'])
// do something
}
謝謝。像魅力一樣工作。 – Mostafa
您也可以在正常的計費電話字段上使用它,所以您將定位'$ _POST ['billing_phone']'作爲替代品,但您需要測試用戶電話數據並將該值保存到訂單中元數據(關鍵是「_billing_phone」)。 – LoicTheAztec