En Business Bloomer, vendo un paquete de productos, y no utilizo un complemento de Bundles para eso. Por lo tanto, el desafío era agregar mediante programación una lista de productos al pedido al comprar, una vez que se compra el producto del paquete.
Esta es una forma sorprendente de ahorrar tiempo para el cliente, ya que no necesitan agregar manualmente cada producto al carrito. En el fondo, después de una compra exitosa, algún código mágico (que encuentra a continuación) agrega productos al pedido, establece su precio a $ 0.00 (de modo que el total de pedidos no se altere) y guarde el pedido. ¡Disfrutar!
Php Snippet: agregue programáticamente el producto a una orden de WooCommerce pagada
Tenga en cuenta: el siguiente código busca a través de los elementos del pedido para ver si el producto id = «123» está presente. Este es el producto «Bundle».
Cuando eso se compra, mi código se desencadena y agrega al Producto CART ID = «456». Por supuesto, puede agregar múltiples productos agregando tantos $ orden-> add_product líneas como desees.
/** * @snippet Add Product @ WooCommerce Order * @how-to businessbloomer.com/woocommerce-customization * @author Rodolfo Melogli, Business Bloomer * @compatible WooCommerce 7 * @community https://businessbloomer.com/club/ */ add_action( 'woocommerce_payment_complete', 'bbloomer_add_products_to_order', 9999 ); function bbloomer_add_products_to_order( $order_id ) { $order = wc_get_order( $order_id ); foreach ( $order->get_items() as $item_id => $item ) { $product_id = $item->get_product_id(); if ( $product_id && $product_id == 123 ) { $order->add_product( wc_get_product( 456 ), 1, array( 'subtotal' => 0, 'total' => 0 ) ); $order->save(); //wc_downloadable_product_permissions( $order_id, true ); ADD THIS IF ADDED PRODUCT IS DOWNLOADABLE //wc_update_product_stock( wc_get_product( 456 ), 1, 'decrease' ); ADD THIS IF YOU WANT TO REDUCE PRODUCT STOCK BY 1 break; } } }