Ya hemos visto cómo Actualizar meta de usuario después de un pedido exitosopero esta vez nuestro objetivo es «corregir» o «editar» un valor de campo de pago después de realizar el pedido.
Por ejemplo, podría agregar un prefijo de número de teléfono si no está allí, y al hacerlo, corrija el número de teléfono antes de enviarlo a su mensajero. Del mismo modo, puede eliminar la puntuación, los espacios de recorte, los acentos de formato y hacer cualquier manipulación que desee en cualquier campo de orden.
Entonces, así es como lo hacen. ¡Disfrutar!
Php Snippet: alterar el valor del campo de pedido después de realizar un pedido @ WooCommerce Checkout
En este ejemplo, veremos cómo volver a formatear el número de teléfono ingresado durante el pago, agregando un prefijo si no está allí. Además, aprenderá sobre la práctica función get_country_calling_code () WooCommerce, ¡lo cual es bueno saber!
/** * @snippet Update Order Meta After a Successful Order - WooCommerce * @how-to businessbloomer.com/woocommerce-customization * @author Rodolfo Melogli, Business Bloomer * @compatible WooCommerce 4.6 * @community https://businessbloomer.com/club/ */ add_action( 'woocommerce_thankyou', 'bbloomer_alter_checkout_fields_after_order' ); function bbloomer_alter_checkout_fields_after_order( $order_id ) { $order = wc_get_order( $order_id ); $phone = $order->get_billing_phone(); $calling_code = WC()->countries->get_country_calling_code( $order->get_billing_country() ); $calling_code = is_array( $calling_code ) ? $calling_code[0] : $calling_code; if ( $phone && $calling_code && ! str_starts_with( $phone, $calling_code ) ) { // str_starts_with() works on PHP 8+ only $phone = $calling_code . $phone; update_post_meta( $order_id, '_billing_phone', $phone ); } }