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>
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>
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="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>
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 :
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!