"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment ajouter des statuts de stock personnalisés aux produits WooCommerce dans WooCommerce 4+ ?

Comment ajouter des statuts de stock personnalisés aux produits WooCommerce dans WooCommerce 4+ ?

Publié le 2024-11-18
Parcourir:401

How to Add Custom Stock Statuses to WooCommerce Products in WooCommerce 4 ?

Statut de stock personnalisé pour les produits WooCommerce dans WooCommerce 4

L'ajout de statuts de stock personnalisés aux produits dans WooCommerce 4 est un processus relativement simple. Cependant, cela nécessite de modifier des fonctions spécifiques pour garantir que les statuts soient correctement affichés dans le frontend et le backend.

Ajout de statuts de stock personnalisés

Pour ajouter des statuts de stock personnalisés, ajoutez le code suivant dans votre fichier function.php :

function filter_woocommerce_product_stock_status_options( $status ) {
    // Add new statuses
    $status['pre_order'] = __('Pre Order', 'woocommerce');
    $status['contact_us'] = __('Contact us', 'woocommerce');

    return $status;
}
add_filter( 'woocommerce_product_stock_status_options', 'filter_woocommerce_product_stock_status_options', 10, 1 );

Ce code ajoute deux nouveaux statuts : "Précommande" et "Contactez-nous".

Affichage du stock personnalisé Disponibilité

Pour garantir que les statuts personnalisés s'affichent correctement dans le frontend, appliquez les modifications suivantes :

// Availability text
function filter_woocommerce_get_availability_text( $availability, $product ) {
    // Get stock status
    switch( $product->get_stock_status() ) {
        case 'pre_order':
            $availability = __( 'Pre Order', 'woocommerce' );
            break;
        case 'contact_us':
            $availability = __( 'Contact us', 'woocommerce' );
            break;
    }

    return $availability;
}
add_filter( 'woocommerce_get_availability_text', 'filter_woocommerce_get_availability_text', 10, 2 );

// Availability CSS class
function filter_woocommerce_get_availability_class( $class, $product ) {
    // Get stock status
    switch( $product->get_stock_status() ) {
        case 'pre_order':
            $class = 'pre-order';
            break;
        case 'contact_us':
            $class = 'contact-us';
            break;
    }

    return $class;
}
add_filter( 'woocommerce_get_availability_class', 'filter_woocommerce_get_availability_class', 10, 2 );

Affichage de l'état du stock dans la liste des produits d'administration

Pour afficher les statuts de stock personnalisés dans la liste des produits d'administration tableau, modifiez la fonction suivante :

// Admin stock html
function filter_woocommerce_admin_stock_html( $stock_html, $product ) {
    // Simple
    if ( $product->is_type( 'simple' ) ) {
        // Get stock status
        $product_stock_status = $product->get_stock_status();
    // Variable
    } elseif ( $product->is_type( 'variable' ) ) {
        foreach( $product->get_visible_children() as $variation_id ) {
            // Get product
            $variation = wc_get_product( $variation_id );

            // Get stock status
            $product_stock_status = $variation->get_stock_status();
        }
    }

    // Stock status
    switch( $product_stock_status ) {
        case 'pre_order':
            $stock_html = '<mark class="pre-order" style="background:transparent none;color:#33ccff;font-weight:700;line-height:1;">' . __( 'Pre order', 'woocommerce' ) . '</mark>';
            break;
        case 'contact_us':
            $stock_html = '<mark class="contact-us" style="background:transparent none;color:#cc33ff;font-weight:700;line-height:1;">' . __( 'Contact us', 'woocommerce' ) . '</mark>';
            break;
    }

    return $stock_html;
}
add_filter( 'woocommerce_admin_stock_html', 'filter_woocommerce_admin_stock_html', 10, 2 );

Facultatif : Utilisation du statut de stock personnalisé dans les hooks

Vous pouvez utiliser des statuts de stock personnalisés dans les hooks lorsque vous avez accès à l'objet $product ou pouvez utiliser global $product.

Remarque :

  • Utilisez global $product lorsque vous n'avez pas accès à l'objet $product, comme dans woocommerce_shop_loop_item_title et woocommerce_single_product_summary hooks.
  • Accédez à l'objet $product s'il est passé par défaut à la fonction de rappel, comme dans le Crochet woocommerce_get_price_html.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3