¿Cómo agregar metadatos personalizados a pedidos de WooCommerce? Específicamente un segundo ID de pedido externo

14 jun 2017, 15:23:32
Vistas: 22.3K
Votos: 1

Estoy trabajando en crear una integración personalizada entre WooCommerce y nuestro ERP interno. Me conecté al hook woocommerce_checkout_order_processed para que cuando se realice un pedido, envíe toda la información relevante a nuestro ERP y la respuesta sea un ID de pedido. Este es un ID de pedido diferente al que está en WooCommerce y necesito una forma de mapear el ID de pedido del ERP con el de WooCommerce. ¿Cuál es la mejor manera de lograr esto?

He intentado agregar metadatos personalizados, pero hasta ahora ha fallado. add_metadata( "shop_order", $order->id, "mapics_order", (string) $orderNumber, TRUE ); y estoy tratando de evitar usar wc_add_order_item_meta ya que esto no es específico del artículo, sino para todo el pedido en sí.

0
Todas las respuestas a la pregunta 1
3

puedes usar el hook woocommerce_checkout_update_order_meta para actualizar los metadatos del pedido. Por favor revisa el código de ejemplo

add_action('woocommerce_checkout_update_order_meta', 'custom_checkout_field_update_order_meta');

function custom_checkout_field_update_order_meta($order_id)
{
    session_start();
    if ($_SESSION['mapics_order'])
        update_post_meta($order_id, 'mapics_order', esc_attr(htmlspecialchars($_SESSION['mapics_order'])));
}
14 jun 2017 15:52:14
Comentarios

¡Increíble, gracias! Lo reduje a solo update_post_meta que parece estar funcionando bien, pero necesitaré hacer algunas verificaciones para estar seguro.

fwho fwho
14 jun 2017 16:02:35

¿sesiones? ¿todavía están permitidas en php? ;) hablando en serio, ¿dónde se supone que exactamente deben ir los datos en la sesión?

Mark Kaplun Mark Kaplun
14 jun 2017 16:14:06

Pasar datos a una sesión es fácil, y aunque no sea una solución perfecta, me dio la pieza que me faltaba para continuar con mi proyecto.

fwho fwho
14 jun 2017 16:24:48