Заказ Woocommerce, обновление метаданных номера телефона, удаление специальных символов

После того, как клиент разместил заказ, я хочу обновить метаданные заказа. Я хотел бы удалить "/" из метаданных номера телефона. Например: 23/3245/235 -> 233245235 Как я должен это делать?

Я пробовал это, это работает, но он не обновляет номер телефона, он создает новое настраиваемое поле `

add_action( 'woocommerce_new_order', 'update_order_meta_phone' );
function update_order_meta_phone( $order_id ) {
    $order = wc_get_order($order_id);   
    if ( ! empty( $_POST['billing_phone'] ) ) {
        // Replace before saving translating )
        $billing_phone = str_replace( array('/'), array(''), $_POST['billing_phone'] );
        update_post_meta( $order_id, 'phone', sanitize_text_field( $billing_phone ) );
    }
}

`

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ресурсы для разработчиков заявляют об этом для update_post_meta:

Если метаполя для поста не существует, оно будет добавлено и возвращен его ID.

Я предполагаю, что в вашем случае этот блок кода вызывает это:

update_post_meta( $order_id, 'phone', sanitize_text_field( $billing_phone ) )

Вы можете попробовать этот блок кода (или проверить таблицу базы данных, чтобы получить правильный столбец, который относится к «номеру телефона»):

update_post_meta( $order_id, '_billing_phone', $phone )

Плюс:

  1. Вы также можете использовать woocommerce_thankyou, следуя https://www.businessbloomer.com/woocommerce-update-checkout-field-value-after-order/
  2. Вы можете использовать значение номера телефона, хранящееся в объекте заказа ($order), нет необходимости проверять и получать $_POST['billing_phone'].

Другие вопросы по теме