После того, как клиент разместил заказ, я хочу обновить метаданные заказа. Я хотел бы удалить "/" из метаданных номера телефона. Например: 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 ) );
}
}
`
Ресурсы для разработчиков заявляют об этом для update_post_meta:
Если метаполя для поста не существует, оно будет добавлено и возвращен его ID.
Я предполагаю, что в вашем случае этот блок кода вызывает это:
update_post_meta( $order_id, 'phone', sanitize_text_field( $billing_phone ) )
Вы можете попробовать этот блок кода (или проверить таблицу базы данных, чтобы получить правильный столбец, который относится к «номеру телефона»):
update_post_meta( $order_id, '_billing_phone', $phone )
Плюс: