Guest User

Untitled

a guest
Sep 8th, 2025
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1.  
  2. function schedule_price_changes() {
  3. // Fechas de activación y desactivación
  4. $activate_date = '2025-08-28 07:00:00'; //
  5. $deactivate_date = '2025-10-01 06:55:00'; //
  6.  
  7. // Lista de productos
  8. $products = [
  9. [ 'product_id' => 5840, 'sale_price' => 87, 'apply_changes' => false ],//
  10. [ 'product_id' => 14559, 'sale_price' => 87, 'apply_changes' => false ],//
  11. [ 'product_id' => 5841, 'sale_price' => 87, 'apply_changes' => false ],//
  12. [ 'product_id' => 14653, 'sale_price' => 87, 'apply_changes' => false ],//
  13. [ 'product_id' => 5846, 'sale_price' => 101, 'apply_changes' => true ],//
  14. [ 'product_id' => 14706, 'sale_price' => 101, 'apply_changes' => true ],//
  15. [ 'product_id' => 5847, 'sale_price' => 99, 'apply_changes' => false ],//
  16. [ 'product_id' => 14657, 'sale_price' => 99, 'apply_changes' => false ],//
  17. [ 'product_id' => 5848, 'apply_changes' => false ],//
  18. [ 'product_id' => 5849, 'sale_price' => 168, 'apply_changes' => false ],//
  19. [ 'product_id' => 5850, 'sale_price' => 168, 'apply_changes' => false ],//
  20. [ 'product_id' => 5851, 'sale_price' => 168, 'apply_changes' => false ],//
  21. [ 'product_id' => 14728, 'apply_changes' => false ],//
  22. [ 'product_id' => 14748, 'sale_price' => 168, 'apply_changes' => false ],//
  23. [ 'product_id' => 14749, 'sale_price' => 168, 'apply_changes' => false ],//
  24. [ 'product_id' => 14750, 'sale_price' => 168, 'apply_changes' => false ],//
  25. [ 'product_id' => 5852, 'sale_price' => 113, 'apply_changes' => false ], //
  26. [ 'product_id' => 14710, 'sale_price' => 113, 'apply_changes' => false ],//
  27. [ 'product_id' => 5845, 'sale_price' => 19, 'apply_changes' => false ], //
  28. [ 'product_id' => 14751, 'sale_price' => 19, 'apply_changes' => false ], //
  29. ];
  30.  
  31. // Programar eventos para productos activos
  32. foreach ($products as $product) {
  33. if (!empty($product['apply_changes'])) {
  34. $pid = $product['product_id'];
  35.  
  36. if (!wp_next_scheduled("activate_price_$pid")) {
  37. wp_schedule_single_event(strtotime($activate_date), "activate_price_$pid", [$product]);
  38. }
  39.  
  40. if (!wp_next_scheduled("deactivate_price_$pid")) {
  41. wp_schedule_single_event(strtotime($deactivate_date), "deactivate_price_$pid", [$product]);
  42. }
  43.  
  44. add_action("activate_price_$pid", 'apply_sale_price', 10, 1);
  45. add_action("deactivate_price_$pid", 'remove_sale_price', 10, 1);
  46. }
  47. }
  48. }
  49. add_action('init', 'schedule_price_changes');
  50.  
  51. // Aplicar precio de oferta
  52. function apply_sale_price($product) {
  53. $wc_product = wc_get_product($product['product_id']);
  54. if ($wc_product && isset($product['sale_price'])) {
  55. $wc_product->set_sale_price($product['sale_price']);
  56. $wc_product->save();
  57. }
  58. }
  59.  
  60. // Restaurar precio normal
  61. function remove_sale_price($product) {
  62. $wc_product = wc_get_product($product['product_id']);
  63. if ($wc_product) {
  64. $wc_product->set_sale_price('');
  65. $wc_product->set_price($wc_product->get_regular_price());
  66. $wc_product->save();
  67. }
  68. }
  69.  
Advertisement
Add Comment
Please, Sign In to add comment