Maison > développement back-end > tutoriel php > Comment ajouter des statuts de stock personnalisés tels que « Précommande » et « Contactez-nous » aux produits WooCommerce ?

Comment ajouter des statuts de stock personnalisés tels que « Précommande » et « Contactez-nous » aux produits WooCommerce ?

Linda Hamilton
Libérer: 2024-11-02 22:32:29
original
1155 Les gens l'ont consulté

How to Add Custom Stock Statuses like “Preorder” and “Contact Us” to WooCommerce Products?

Comment ajouter un statut de stock personnalisé aux produits dans WooCommerce 4

Le problème

Statuts de stock personnalisés, tels que « Précommande » et « Contactez-nous ," sont absents des options de produit dans WooCommerce 4.

La solution

Ajoutez le code suivant à votre fichier function.php :

// Add new stock status options
add_filter( 'woocommerce_product_stock_status_options', 'filter_woocommerce_product_stock_status_options', 10, 1 );
function filter_woocommerce_product_stock_status_options( $status ) {
    $status['pre_order'] = __( 'Pre order', 'woocommerce' );
    $status['contact_us'] = __( 'Contact us', 'woocommerce' );
    return $status;
}

// Availability text
add_filter( 'woocommerce_get_availability_text', 'filter_woocommerce_get_availability_text', 10, 2 );
function filter_woocommerce_get_availability_text( $availability, $product ) {
    switch( $product->get_stock_status() ) {
        case 'pre_order':
            $availability = __( 'Pre order', 'woocommerce' );
        break;
        case 'contact_us':
            $availability = __( 'Contact us', 'woocommerce' );
        break;
    }
    return $availability; 
}

// Availability CSS class
add_filter( 'woocommerce_get_availability_class', 'filter_woocommerce_get_availability_class', 10, 2 );
function filter_woocommerce_get_availability_class( $class, $product ) {
    switch( $product->get_stock_status() ) {
        case 'pre_order':
            $class = 'pre-order';
        break;
        case 'contact_us':
            $class = 'contact-us';
        break;
    }
    return $class;
}

// Admin stock html
add_filter( 'woocommerce_admin_stock_html', 'filter_woocommerce_admin_stock_html', 10, 2 );
function filter_woocommerce_admin_stock_html( $stock_html, $product ) {
    switch( $product->get_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;
}
Copier après la connexion

Notes supplémentaires :

  • Ces modifications n'ont pas d'effet sur les statuts de stock existants.
  • Les nouveaux statuts de stock apparaîtront sur la page produit, le page de produit unique et tableau de liste de produits d'administration.
  • Si vous le souhaitez, vous pouvez utiliser les statuts de stock personnalisés dans les hooks où vous avez déjà accès à l'objet $product.

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal