Comment bloquer la caisse dans Dokan lorsque le vendeur est fermé ?

Il y a quelques années, Dokan a introduit une fonction permettant aux vendeurs de définir les heures d’ouverture et de fermeture de leur magasin. Toutefois, cette nouvelle fonctionnalité ne fait qu’indiquer les heures d’ouverture des vendeurs. Si vous souhaitez bloquer le processus d’ajout au panier ou de paiement, lorsqu’un vendeur e.g. un restaurant est fermé, vous aurez besoin d’un code personnalisé. Le code ci-dessous affichera un message d’erreur à vos clients lorsqu’ils voudront passer à la caisse avec des produits provenant d’un vendeur qui est fermé. Place qui int vos fonctions.php de votre thème enfant.add_action( ‘woocommerce_checkout_process’, ‘check_shop_open’ ) ;add_action( ‘woocommerce_check_cart_items’ , ‘check_shop_open’ ) ;fonction check_shop_open() { $vendorId=false ; // Définir l’ID du vendeur en fonction des articles du panier $cartItems=WC()->cart->get_cart() ; foreach ( $cartItems as $cartItemKey => $cartItem ) { $vendorId =get_post_field( ‘post_author’, $cartItem[‘product_id’] ); $vendorInfo=dokan_get_store_info( $vendorId ) ; }si(!$vendorId) {retour ;}si(empty($vendorInfo)) {retour ;}si(!isset($vendorInfo[‘dokan_store_time’]) || empty($vendorInfo[‘dokan_store_time’]) ) {retour ;}// Obtenir toutes les heures d’ouverture des vendeurs$wpTimezone=wp_timezone() ;$vendorName=$vendorInfo[‘store_name’];$storeOpeningHours=$vendorInfo[‘dokan_store_time’];$dateFormat=’d.m.Y’ ;$currentDate=DateTime::createFromFormat($dateFormat, date($dateFormat), $wpTimezone) ;$currentDay=strtolower( $currentDate->format(‘l’) ) ;si(!isset($storeOpeningHours[$currentDay]) || empty($storeOpeningHours[$currentDay])) {retour ;}// Définir les heures d’ouverture actuelles du vendeur de jour$storeOpeningHoursCurrentDay=$storeOpeningHours[$currentDay];// Le magasin est fermé aujourd’huisi(isset($storeOpeningHoursCurrentDay[‘status’]) && $storeOpeningHoursCurrentDay[‘status’] == “fermer”) { show_cart_checkout_message( sprintf( __(‘Oh sorry. %s est fermé aujourd’hui! Veuillez revenir un autre jour.’, ‘flatsome-child’), $vendorName ) ) ; retourner faux ;}// Le magasin n’est pas ouvertsi(isset($storeOpeningHoursCurrentDay[‘opening_time’]) && !empty($storeOpeningHoursCurrentDay[‘opening_time’])) {$storeOpeningHoursCurrentDayOpeningTime=$storeOpeningHoursCurrentDay[‘opening_time’];$storeOpeningHoursCurrentDayOpeningTimeObject=DateTime::createFromFormat(‘H:i’, $storeOpeningHoursCurrentDayOpeningTime, $wpTimezone) ;si($currentDate

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close Popup

We use cookies to give you the best online experience. By agreeing you accept the use of cookies in accordance with our cookie policy.

Close Popup
Paramètres de confidentialité sauvegardés !
Privacy Settings

When you visit any web site, it may store or retrieve information on your browser, mostly in the form of cookies. Control your personal Cookie Services here.

These cookies are necessary for the website to function and cannot be switched off in our systems.

Technical Cookies
In order to use this website we use the following technically required cookies
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec

Decline all Services
Save
Accept all Services