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

Susan Sarandon
Libérer: 2024-11-03 14:59:02
original
611 Les gens l'ont consulté

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 :

<code class="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 );</code>
Copier après la connexion

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

Affichage de la disponibilité des stocks personnalisés

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

<code class="php">// 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 );</code>
Copier après la connexion

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

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

<code class="php">// 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=&quot;pre-order&quot; style=&quot;background:transparent none;color:#33ccff;font-weight:700;line-height:1;&quot;>' . __( 'Pre order', 'woocommerce' ) . '</mark>';
            break;
        case 'contact_us':
            $stock_html = '<mark class=&quot;contact-us&quot; style=&quot;background:transparent none;color:#cc33ff;font-weight:700;line-height:1;&quot;>' . __( 'Contact us', 'woocommerce' ) . '</mark>';
            break;
    }

    return $stock_html;
}
add_filter( 'woocommerce_admin_stock_html', 'filter_woocommerce_admin_stock_html', 10, 2 );</code>
Copier après la connexion

Facultatif : Utilisation de l'état de stock personnalisé dans Hooks

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

Remarque :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!