Maison > Article > développement back-end > Comment ajouter une fonctionnalité de statut de stock personnalisé à WooCommerce 4 ?
Introduction
L'ajout de statuts de stock personnalisés à vos produits WooCommerce permet vous de fournir des informations plus détaillées sur leur disponibilité. Cela peut contribuer à améliorer l'expérience d'achat de vos clients et à réduire la confusion.
Options d'état de stock personnalisé
Pour obtenir une fonctionnalité d'état de stock personnalisé, suivez ces étapes :
Ajouter des statuts de stock personnalisés :
<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>
Mettre à jour le texte et la classe de disponibilité :
<code class="php">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 ); 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>
Afficher les statuts personnalisés sur la liste des produits d'administration :
<code class="php">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 );</code>
Utiliser les statuts personnalisés dans les hooks :
Option 1 : Utiliser $product global
<code class="php">function woocommerce_my_callback() { // Get the global product object global $product; // Is a WC product if ( is_a( $product, 'WC_Product' ) ) { // Get stock status $product_stock_status = $product->get_stock_status(); // Use this line during testing, delete afterwards! echo '<p style="color:red;font-size:20px;">DEBUG INFORMATION = ' . $product_stock_status . '</p>'; // Compare if ( $product_stock_status == 'My custom stock status' ) { // Etc.. } } } add_action( 'woocommerce_shop_loop_item_title', 'woocommerce_my_callback', 10 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_my_callback', 10 );</code>
Option 2 : Passer $product au rappel
<code class="php">function filter_woocommerce_get_price_html( $price, $product ) { // Is a WC product if ( is_a( $product, 'WC_Product' ) ) { // Get stock status $product_stock_status = $product->get_stock_status(); // Use this line during testing, delete afterwards! echo '<p style="color:red;font-size:20px;">DEBUG INFORMATION = ' . $product_stock_status . '</p>'; // Compare if ( $product_stock_status == 'My custom stock status' ) { // Etc.. // $price .= ' my text'; } } return $price; } add_filter( 'woocommerce_get_price_html', 'filter_woocommerce_get_price_html', 10, 2 );</code>
Conclusion
L'ajout de statuts de stock personnalisés à WooCommerce offre une plus grande flexibilité et des informations à vos clients. En suivant ces étapes, vous pouvez facilement étendre la fonctionnalité par défaut de WooCommerce et améliorer l'expérience d'achat de vos utilisateurs.
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!