Maison > Questions et réponses > le corps du texte
J'ai ce code qui ajoute le nom du produit comme préfixe au numéro de commande via function.php, mais je souhaite le modifier pour ajouter le SKU. De plus, ce serait bien si la quantité pour chaque SKU pouvait être insérée en même temps.
Semblable à : 2xSKUA_1xSKUB_Numéro de commande
Quelqu’un peut-il m’indiquer la bonne direction ?
function filter_woocommerce_order_number( $this_get_id, $instance ) { $order = new WC_Order( $this_get_id ); $items = $order->get_items(); foreach ( $items as $item ) { $product_name = preg_replace('/\s+/', '_', $item['name']);; break; } $new_id = $product_name.'_'.$this_get_id; return $new_id; }; add_filter( 'woocommerce_order_number', 'filter_woocommerce_order_number', 10, 2 );
P粉9498488492023-09-12 17:26:24
Pour ajouter le SKU avant la quantité de l'article (produit) commandé, utilisez-le après le numéro de commande. Code revisité ci-dessous :
add_filter( 'woocommerce_order_number', 'filter_woocommerce_order_number', 10, 2 ); function filter_woocommerce_order_number( $order_number, $order ) { $prefix = array(); // Initializing // Loop through order items foreach ( $order->get_items() as $item ) { $product = $item->get_product(); // Get the product object // Add the quantity with the sku to the array $prefix[] = $item->get_quantity() . 'X' . $product->get_sku(); } // return everything merged in a string return implode('_', $prefix) . '_' . $order_number; }
Cela devrait fonctionner comme prévu.