Maison  >  Questions et réponses  >  le corps du texte

Ajouter tous les SKU des articles de commande au numéro de commande dans Woocommerce

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粉707235568P粉707235568427 Il y a quelques jours566

répondre à tous(1)je répondrai

  • P粉949848849

    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.

    répondre
    0
  • Annulerrépondre