add_action('pre_get_posts', 'exclude_products_from_categories'); fonction exclude_products_from_categories($query) { if (is_shop() && $query->is_main_query()) { $excluded_categories = array(7, 8, 9); // Catégories à exclure $query->set('tax_query', array( array( 'taxonomy' => 'product_cat', 'field' => 'id', 'terms' => $excluded_categories, 'operator' => 'NOT IN', ), )); } }
Catégorie: WordPress
Plugins(37)
Modifier le prix du produit en fonction de la localisation de l'utilisateur
add_filter(‘woocommerce_product_get_price’, ‘adjust_price_by_user_location’, 10, 2); function adjust_price_by_user_location($price, $product) { $user_country = WC()->customer->get_billing_country(); if ($user_country == ‘US’) { $price = $price * 1.1; // 10% Aufschlag für US-Kunden } return $price; }
Appliquer le code promo en fonction de la catégorie de produit
add_action('woocommerce_before_cart', 'appliquer_un_coupon_basé_sur_la_catégorie'); fonction apply_coupon_based_on_category() { $coupon_code = 'CATEGORYCODE'; // Code promo pour une catégorie spécifique $target_category = 'sale'; // Nom de la catégorie $cart = WC()->cart; $coupon_applied = faux; foreach ($cart->get_cart() comme $cart_item) { $product = $cart_item['data']; si (has_term($target_category, 'product_cat', $product->get_id())) { $coupon_applied = true; casser; } } si (!$coupon_applied) { $cart->apply_coupon($coupon_code); } }
Modifier les frais de livraison en fonction du poids des produits
add_filter('woocommerce_package_rates', 'ajuster_les_coûts_d'expédition_par_poids', 10, 2); fonction ajuster_les_frais_d'expédition_par_poids($rates, $package) { $poids_total = WC()->panier->obtenir_poids_du_contenu_du_panier(); si ($total_weight > 10) { foreach ($rates as $rate_id => $rate) { $rates[$rate_id]->cost += 7.00; // Frais de port supplémentaires pour les colis lourds } } return $rates; }
Masquer les produits dans la catégorie « Vente »
add_action('pre_get_posts', 'exclude_sale_category_products'); fonction exclude_sale_category_products($query) { if (is_shop() && $query->is_main_query()) { $query->set('tax_query', array( array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => 'sale', 'operator' => 'NOT IN', ), )); } }
Livraison gratuite pour les commandes supérieures à un certain montant
add_filter('woocommerce_shipping_free_shipping_is_available', 'free_shipping_above_threshold', 10, 2); fonction livraison_gratuite_au_dessus_du_seuil($est_disponible, $package) { $free_shipping_threshold = 75; // Montant au-delà duquel la livraison est gratuite $cart_total = WC()->cart->get_cart_contents_total(); si ($cart_total >= $free_shipping_threshold) { $est_disponible = vrai ; } renvoie $is_available; }
Intégrer un fichier CSS personnalisé :
add_action('wp_enqueue_scripts', 'custom_styles'); fonction custom_styles() { wp_enqueue_style('custom-style', get_stylesheet_directory_uri() . '/custom.css'); }
Désactiver les avis clients sur la page produit
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10);
Définissez une quantité minimale de commande pour une livraison gratuite
La fonction set_free_shipping_minimum() dans WooCommerce vérifie si la valeur du panier du client a atteint la valeur minimale de commande pour la livraison gratuite. Si la valeur du panier est inférieure à la valeur minimale de commande, un message d'erreur s'affichera informant le client qu'il doit atteindre la valeur minimale de commande pour bénéficier de la livraison gratuite. La valeur minimale de commande peut être modifiée dans la fonction en […]
Afficher l'état de la commande dans les e-mails de commande
add_filter('woocommerce_email_order_meta_keys', 'show_order_status_in_emails'); fonction show_order_status_in_emails($keys) { $keys[] = '_order_status'; renvoyer $keys; }