PluginProbe
HurryTimer – An Scarcity and Urgency Countdown Timer for WordPress & WooCommerce / trunk
HurryTimer – An Scarcity and Urgency Countdown Timer for WordPress & WooCommerce vtrunk
2.15.0 trunk 1.0.0 1.0.1 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.1.2 2.1.3 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 All 62 releases
hurrytimer / includes / ActionManager.php

ActionManager.php in HurryTimer – An Scarcity and Urgency Countdown Timer for WordPress & WooCommerce trunk, at includes/ActionManager.php

90 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Hurrytimer;
4
5 /**
6 *
7 * This class handle actions executions
8 *
9 * Class ActionManager
10 *
11 * @package Hurrytimer
12 */
13 class ActionManager
14 {
15 /**
16 * @var Campaign
17 */
18 protected $campaign;
19
20 public function __construct( $campaign )
21 {
22 $this->campaign = $campaign;
23 add_filter( 'wp_insert_post_data', function ( $data ) {
24 global $hurryt_saving_post;
25 $hurryt_saving_post = true;
26
27 return $data;
28 } );
29 add_action( 'save_post', function () {
30 global $hurryt_saving_post;
31 $hurryt_saving_post = false;
32 } );
33
34 }
35
36 function is_disabled()
37 {
38 $disable_actions = hurryt_is_admin_area() && hurryt_settings()[ 'disable_actions' ];
39 return filter_var( apply_filters( 'hurryt_disable_actions', $disable_actions ), FILTER_VALIDATE_BOOLEAN );
40 }
41
42 public function run()
43 {
44
45 if ( $this->is_disabled() ) {
46 return;
47 }
48
49 /**
50 * @deprecated 2.3.0 Use `hurryt_campaign_finished` instead.
51 */
52 do_action( "hurryt_{$this->campaign->get_id()}_campaign_ended", $this->campaign );
53
54 do_action( "hurryt_campaign_finished", $this->campaign->get_id() );
55
56 foreach ( $this->campaign->actions as $action ) {
57 switch ( $action[ 'id' ] ) {
58
59 case C::ACTION_REDIRECT;
60 $this->redirect_to( $action[ 'redirectUrl' ] );
61 break;
62 case C::ACTION_CHANGE_STOCK_STATUS:
63 $this->change_stock_status( $action[ 'wcStockStatus' ] );
64 break;
65 }
66 }
67 }
68
69 function redirect_to( $url )
70 {
71 global $hurryt_saving_post;
72 if ( $hurryt_saving_post ) {
73 return;
74 }
75
76 if ( !empty( trim( $url ) ) ) {
77 wp_redirect( esc_url_raw( $url ) );
78 exit;
79 }
80 }
81
82 function change_stock_status( $stock_status )
83 {
84 $wc_campaign = new WCCampaign();
85 $wc_campaign->change_stock_status( $this->campaign, $stock_status );
86
87 return;
88 }
89 }
90