PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / raffle-press / raffle-press.php
suretriggers / src / Integrations / raffle-press Last commit date
actions 10 months ago triggers 2 years ago raffle-press.php 2 years ago
raffle-press.php
148 lines
1 <?php
2 /**
3 * RafflePress core integrations file
4 *
5 * @since 1.0.0
6 * @package SureTrigger
7 */
8
9 namespace SureTriggers\Integrations\RafflePress;
10
11 use SureTriggers\Controllers\IntegrationsController;
12 use SureTriggers\Integrations\Integrations;
13 use SureTriggers\Traits\SingletonLoader;
14
15 /**
16 * Class SureTrigger
17 *
18 * @package SureTriggers\Integrations\RafflePress
19 */
20 class RafflePress extends Integrations {
21
22 use SingletonLoader;
23
24 /**
25 * ID
26 *
27 * @var string
28 */
29 protected $id = 'RafflePress';
30
31 /**
32 * SureTrigger constructor.
33 */
34 public function __construct() {
35 $this->name = __( 'RafflePress', 'suretriggers' );
36 $this->description = __( 'Best WordPress Giveaway and Contest Plugin.', 'suretriggers' );
37 $this->icon_url = SURE_TRIGGERS_URL . 'assets/icons/rafflepress.svg';
38
39 parent::__construct();
40 }
41
42 /**
43 * Get Giveaway context data.
44 *
45 * @param int $giveaway_id Giveaway ID.
46 *
47 * @return array
48 */
49 public static function get_giveaway_context( $giveaway_id ) {
50
51 $context = [];
52 global $wpdb;
53
54 $giveaway = $wpdb->get_row( $wpdb->prepare( "SELECT name,starts,ends,active FROM {$wpdb->prefix}rafflepress_giveaways WHERE id=%d ORDER BY name ASC", $giveaway_id ), ARRAY_A );
55
56 if ( ! $giveaway ) {
57 return $context;
58 }
59
60 $giveaway_total_entries = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$wpdb->prefix}rafflepress_entries WHERE giveaway_id = %d", $giveaway_id ) );
61 $giveaway_total_users = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$wpdb->prefix}rafflepress_contestants WHERE giveaway_id = %d", $giveaway_id ) );
62
63 $format = is_string( get_option( 'date_format' ) ) ? get_option( 'date_format' ) : 'YYYY-MM-DD';
64
65 $context['giveaway_id'] = $giveaway_id;
66 $context['giveaway_title'] = $giveaway['name'];
67 $context['giveaway_start_date'] = gmdate( $format, strtotime( $giveaway['starts'] ) );
68 $context['giveaway_end_date'] = gmdate( $format, strtotime( $giveaway['ends'] ) );
69 $context['giveaway_entries'] = $giveaway_total_entries;
70 $context['giveaway_user_count'] = $giveaway_total_users;
71 $context['giveaway_status'] = ( true === $giveaway['active'] ) ? 'Active' : 'Inactive';
72
73 return $context;
74 }
75
76 /**
77 * Get contestant context data.
78 *
79 * @param int $contestant_id Contestant ID.
80 *
81 * @return array
82 */
83 public static function get_contestant_context( $contestant_id ) {
84
85 $context = [];
86 global $wpdb;
87
88 $contestant = $wpdb->get_row( $wpdb->prepare( "SELECT fname,lname,email,status FROM {$wpdb->prefix}rafflepress_contestants WHERE id=%d", $contestant_id ), ARRAY_A );
89
90 if ( ! $contestant ) {
91 return $context;
92 }
93
94 $context['contestant_id'] = $contestant_id;
95 $context['contestant_name'] = $contestant['fname'] . ' ' . $contestant['lname'];
96 $context['contestant_email'] = $contestant['email'];
97 $context['contestant_email_verified'] = ( 'confirmed' === $contestant['status'] ) ? 'Yes' : 'No';
98
99 return $context;
100 }
101
102 /**
103 * Get full context data.
104 *
105 * @param array $data Giveaway Data.
106 *
107 * @return array
108 */
109 public static function get_full_context( $data ) {
110
111 $context = [];
112
113 if (
114 empty( $data ) ||
115 ! isset( $data['giveaway_id'] ) ||
116 ! isset( $data['contestant_id'] ) ||
117 ! isset( $data['entry_option_meta'] )
118 ) {
119 return $context;
120 }
121
122 $context = array_merge(
123 self::get_giveaway_context( $data['giveaway_id'] ),
124 self::get_contestant_context( $data['contestant_id'] )
125 );
126
127 if ( empty( $context ) ) {
128 return $context;
129 }
130
131 $context['performed_action_id'] = isset( $data['entry_option_meta']->id ) ? $data['entry_option_meta']->id : 0;
132 $context['performed_action_name'] = isset( $data['entry_option_meta']->name ) ? $data['entry_option_meta']->name : '';
133
134 return $context;
135 }
136
137 /**
138 * Is Plugin depended on plugin is installed or not.
139 *
140 * @return bool
141 */
142 public function is_plugin_installed() {
143 return defined( 'RAFFLEPRESS_BUILD' ) || defined( 'RAFFLEPRESS_PRO_BUILD' );
144 }
145 }
146
147 IntegrationsController::register( RafflePress::class );
148