- WordPress :6.4
- Statut : résolu
- Ce sujet contient 4 réponses, 2 participants et a été mis à jour pour la dernière fois par
ZazaKool, le il y a 1 année.
-
AuteurMessages
-
18 mai 2024 à 6 h 02 min #2473001
Bonjour,
Je souhaite cacher une méthode de livraison (en l’occurence la livraison gratuite) après une certaine heure.
J’ai essayé le code suivant mais il ne semble pas fonctionner et pour une raison que j’ignore. Quelqu’un pourrait-il m’aider la dessus svp ?
L’idée est de cacher la livraison gratuite après 10h30 (idéalement), 11h si la demie-heure n’est pas prise en charge.
Voici le code :
// Cacher livraison selon horaire de commande
add_filter( 'woocommerce_package_rates', 'hide_shipping_method_based_on_time', 10, 2 );
function hide_shipping_method_based_on_time( $rates, $package )
{
// Set your default time zone (http://php.net/manual/en/timezones.php)
date_default_timezone_set('Europe/London');
// Here set your shipping rate Id
$shipping_rate_id = 'free_shipping:13';
// When this shipping method is available and after 11 AM
if ( array_key_exists( $shipping_rate_id, $rates ) && date('H') > 11 ) {
unset($rates[$shipping_rate_id]); // remove it
}
return $rates;
}Ma configuration WP actuelle
- Version de PHP/MySQL : 8.1/8.0
- Thème utilisé : Hello
- Extensions en place : Akismet, All In One Security, Checkout Field Editor For WC Pro, CookieYes, Elementor, Elementor pro, Google Analyrics by MonsterInsights, MailOptin lite, Really Simple SSL, Sogecommerce for WC, Ultimate Addons for Elementor, Updraftplus, WooCommerce, Yoast SEO
- Nom de l’hébergeur : IONOS
- Adresse du site : https://absolutesushi.fr/
18 mai 2024 à 16 h 31 min #2473018Bonjour,
Finalement ça fonctionne? Je ne vois pas la méthode « livraison gratuite » ; seulement « retrait sur place ».
21 mai 2024 à 11 h 50 min #2473086Bonjour,
Non, car la livraison n’est proposée qu’en fonction du code postal : il faut donc entrer son adresse et si le code postal est ok, alors l’option livraison s’affiche. Les codes postaux sont 06410, 06250, 06560 entre autres.
Il est 11h là, et l’option est toujours visible 🙁
21 mai 2024 à 13 h 02 min #2473095Bonjour,
Bon, le snippet ne fonctionne pas chez moi non plus. Il date de 2020; peut-être n’est-il plus valable pour les dernières versions de woommerce? Je peux vous proposer une version php/javascript. C’est moins bien que du php « pur » mais c’est mieux que du CSS et chez moi à priori ça fonctionne . Vous pouvez essayer ce code (à mettre dans functions.php).
function hide_shipping_method_based_on_time_mod(){
date_default_timezone_set('Europe/London');
if ( date('H') > 11 ) {?>
<script>
document.getElementById('shipping_method_0_free_shipping13').parentElement.remove();
</script>
<?php
}
}
add_filter( 'woocommerce_cart_totals_after_shipping', 'hide_shipping_method_based_on_time_mod', 10, 2 );
add_filter( 'woocommerce_review_order_after_shipping', 'hide_shipping_method_based_on_time_mod', 10, 2 );22 mai 2024 à 11 h 12 min #2473139Bonjour,
Cette méthode semble fonctionner, merci beaucoup.
Et si un nouveau snippet php bien propre est mis en ligne, et bien nous modifierons.
Merci de votre aide
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.