Este va a ser un gran tutorial. Y funciona con seguridad, porque lo acabo de implementar en el nuevo Sitio web de Wooweekly!
Básicamente, estaba buscando una manera de crear un pedido en el sitio web de negocios de Bloomer Bloomer cuando un cliente se registró en la página de mi cuenta en el sitio web de Wooweekly WooCommerce. La razón para hacerlo es que estoy usando marketing por correo electrónico en el negocio Bloomer, y la única forma de agregar un contacto por correo electrónico de otro sitio web fue mediante el uso de la «API REST» que proporciona WooCommerce.
Ahora, aprendí todo esto hoy, para que también puedas lograr cosas complejas. Te ahorraré un par de horas de dolores de cabeza tratando de descubrir cómo funciona el sistema, ¡por eso estás aquí!
Entonces, ¿cómo se crea un pedido de WooCommerce en un sitio web cuando ocurre un evento en otro sitio web? ¡Disfrutar!
1. Crea un conjunto de teclas API REST
Vaya al sitio web donde desea que se cree el pedido, luego vaya a WooCommerce -> Configuración -> Avanzado -> REST API -> Agregar clave.
Ingrese su descripción y, lo más importante, establezca los permisos en «leer/escribir». Haga clic en «Generar la tecla API»:
Ahora se le presentará un conjunto de claves, y específicamente una «clave del consumidor» y un «secreto del consumidor»:
Ahora, su sitio web donde desea crear pedidos (o cualquier cosa, por ejemplo, productos de WooCommerce, clientes, etc.) está «listo», ya que solo nosotros creó una forma para que otro sitio web se comunique con él, lea y escriba.
2. Agregue código al sitio web «otro»
Tan pronto como sucede algo en el otro sitio web, por ejemplo, se envía un formulario, puede usar algún código para «enviar los datos» al sitio web donde desea crear el pedido programáticamente.
En mi caso he seleccionado el «WooCommerce_Created_Customer«Hook: Tan pronto como un cliente de WooCommerce se registra en https://wcwkly.com (¿Vea el formulario de registro en la parte superior de la página de inicio?) Quiero un pedido creado en Business Bloomer. He creado API Keys en Business Bloomer, por lo que puedo conectar a los dos y dejar que trabajen su magia.
Php Snippet: cree un pedido en el sitio web de WooCommerce «A» cuando ocurre un evento en el sitio web «B»
Nota: Por supuesto, pegar los códigos de clave y clave secretos de su consumidor en variables $ LIVE_CK y $ LIVE_CS. Además, cambie la dirección del sitio web de $ Live_url a la suya.
/** * @snippet Create WooCommerce Order via API * @how-to businessbloomer.com/woocommerce-customization * @author Rodolfo Melogli, Business Bloomer * @compatible WooCommerce 5 * @community https://businessbloomer.com/club/ */ add_action( 'woocommerce_created_customer', 'bbloomer_create_order_from_wcwkly', 9999, 3 ); function bbloomer_create_order_from_wcwkly( $customer_id, $new_customer_data, $password_generated ) { $live_ck = 'ck_blablabla'; $live_cs = 'cs_blablabla'; $live_url = 'https://www.businessbloomer.com/wp-json/wc/v3/orders?consumer_key=' . $live_ck . '&consumer_secret=' . $live_cs; $customer = new WC_Customer( $customer_id ); $body = array( 'status' => 'completed', 'meta_data' => array( array( 'key' => 'createdby', 'value' => 'wcwkly.com' )), 'total' => 0, 'billing' => array( 'first_name' => $customer->get_billing_first_name(), 'email' => $customer->get_email(), ), 'line_items' => array( array( 'product_id' => 195376, 'quantity' => 1, )), ); $raw_response = wp_remote_post( $live_url, array( 'headers' => array( 'Content-Type' => 'application/json' ), 'timeout' => 30, 'body' => json_encode( $body ), ) ); }
En mi caso, como puede ver en el código, estoy creando un pedido con Estado completadoEstoy registrando algunos meta datos En él diciendo que la orden fue creada por la Otro URL del sitio web, estoy configurando el total A $ 0, estoy agregando facturación Nombre y correo electrónico, y un producto con ID = 195376 y cantidad = 1. Todos los parámetros que se pueden usar están aquí: https://woocommerce.github.io/wooCommerce-rest-api-docs/#order-properties -Puede establecer cualquier parámetro que no sea «de solo lectura».
Resultado final? Ahí tienes. Prueba del usuario ingresado «www«Como primer nombre y»Rodolfomelli ……@….«Como correo electrónico de facturación, que es el bit de datos dinámico, mientras que el resto se estableció a través del código.