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 :
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