Advertisement
YordanSoares

WooCommerce: Desactiva métodos de envío específicos los fines de semana y después de las 3:00 pm

Nov 9th, 2023
601
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.14 KB | Software | 0 0
  1. <?php
  2. /**
  3.  * WooCommerce:
  4.  * Desactiva métodos de envío específicos los fines de semana y después de las 3:00 pm / 15:00
  5.  */
  6. add_filter( 'woocommerce_package_rates', 'hide_shipping_method_based_on_day_of_the_week_and_time', 10, 2 );
  7. function hide_shipping_method_based_on_day_of_the_week_and_time( $rates, $package ) {
  8.     // Establece aquí la zona horaria por defecto (http://php.net/manual/en/timezones.php)
  9.     date_default_timezone_set('Europe/Madrid');
  10.    
  11.     // Establece aquí los ID de las tarfias de envío
  12.     $shipping_rate_ids = array(
  13.         'advanced_flat_rate_shipping:12945',
  14.         'advanced_flat_rate_shipping:12947',
  15.         'advanced_flat_rate_shipping:12956',
  16.         'advanced_flat_rate_shipping:12959',
  17.     );
  18.  
  19.     foreach ( $shipping_rate_ids as $shipping_rate_id ) {
  20.         // Si el ID de la tarifa de envío está en el array anterior...
  21.         if ( array_key_exists( $shipping_rate_id, $rates )
  22.         // ...y son más de las 3:00 pm (15:00) o es fin de semana...
  23.         && ( ( date( 'H' ) >= 15 || in_array( date( 'N' ), [ 6, 7 ] ) ) ) ) {
  24.             // ...se desactiva la tarifa de envío.
  25.             unset( $rates[$shipping_rate_id] );
  26.         }
  27.     }
  28.    
  29.     return $rates;
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement