PluginProbe
GetResponse Forms by Optin Cat / 2.0.2
GetResponse Forms by Optin Cat v2.0.2
1.3.4 1.3.5 1.3.6 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 2.0.0 All 36 releases
← All changes | getresponse-wp.php +132 -237 1.3.52.0.2 View file →
@@ -1,279 +1,174 @@
1 1 <?php
2 2 /*
3 - Plugin Name: GetResponse Forms by Optin Cat
4 - Plugin URI: https://fatcatapps.com/optincat
5 - Description: The GetResponse Optin Cat WordPress Lets You Convert More Blog Viisots Into Email Subscribers. Set It Up In 2 Minutes.
6 - Author: Fatcat Apps
7 - Version: 1.3.5
8 - Author URI: https://fatcatapps.com/
3 + Plugin Name: GetResponse Forms by Optin Cat
4 + Plugin URI: https://fatcatapps.com/optincat
5 + Description: The GetResponse Optin Cat WordPress Lets You Convert More Blog Visits Into Email Subscribers. Set It Up In 2 Minutes.
6 + Author: Fatcat Apps
7 + Version: 2.0.2
8 + Author URI: https://fatcatapps.com/
9 9 */
10 10
11 11 // define( 'FCA_EOI_DEBUG', true );
12 +
12 13 if ( ! function_exists( 'is_admin' ) ) {
13 - exit();
14 + exit();
14 15 }
15 16
16 -require 'includes/skelet/skelet.php';
17 -
18 17 define( 'FCA_EOI_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
19 18 define( 'FCA_EOI_PLUGIN_FILE', __FILE__ );
20 19 define( 'FCA_EOI_PLUGIN_URL', plugins_url( '', __FILE__ ) );
20 +define( 'FCA_EOI_EDITION', 'getresponse' );
21 +define( 'FCA_EOI_PLUGIN_SLUG', 'getresponse' );
22 +define( 'FCA_EOI_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
23 +define( 'FCA_EOI_VER', '2.0.2' );
21 24
22 25 if( ! defined ( 'FCA_EOI_DEBUG' ) ) {
23 - define( 'FCA_EOI_DEBUG', false );
26 + define( 'FCA_EOI_DEBUG', false );
24 27 }
25 -if ( FCA_EOI_DEBUG && ! class_exists ( 'Kint' ) ) {
26 - require FCA_EOI_PLUGIN_DIR . 'includes/classes/kint/Kint.class.php';
27 -}
28 -if ( ! class_exists ( 'Mustache_Engine' ) ) {
29 - require FCA_EOI_PLUGIN_DIR . 'includes/classes/Mustache/Autoloader.php';
30 - Mustache_Autoloader::register();
31 -}
32 28
33 29 /**
34 - * Include scssphp
35 - *
36 - * Latest version requires PHP 5.3
37 - * Version 0.0.15 works with PHP 5.2
38 - * We detect PHP > 5.3 by checking the constant __DIR__
30 + * Include and instantiate Mobile Detect
39 31 */
40 -if ( ! class_exists ( 'scssc' ) ) {
41 - if( defined( '__DIR__' ) ) {
42 - require FCA_EOI_PLUGIN_DIR . 'includes/classes/scssphp/scss.inc.php';
43 - } else {
44 - require FCA_EOI_PLUGIN_DIR . 'includes/classes/scssphp-0.0.15/scss.inc.php';
45 - }
32 +if ( !class_exists ( 'Mobile_Detect' ) ) {
33 + require FCA_EOI_PLUGIN_DIR . 'includes/classes/Mobile-Detect/Mobile_Detect.php';
46 34 }
47 35
48 -/**
49 - * Include and instanciate Mobile Detect
50 - */
51 -if ( ! class_exists ( 'Mobile_Detect' ) ) {
52 - require FCA_EOI_PLUGIN_DIR . 'includes/classes/Mobile-Detect/Mobile_Detect.php';
53 -}
54 -
55 -
56 36 if( ! class_exists( 'DhEasyOptIns' ) ) {
57 -class DhEasyOptIns {
37 + class DhEasyOptIns {
58 38
59 - var $ver = '1.3.5';
60 - var $distro = '';
61 - var $shortcode = 'optin-cat';
62 - var $shortcode_aliases = array(
63 - 'easy-opt-in',
64 - 'optincat',
65 - 'opt-in-cat',
66 - );
67 - var $settings;
68 - var $provider = '';
69 - var $providers = array();
39 + var $distro = '';
40 + var $shortcode = 'optin-cat';
41 + var $shortcode_aliases = array(
42 + 'easy-opt-in',
43 + 'optincat',
44 + 'opt-in-cat',
45 + );
46 + var $settings;
47 + var $provider = '';
48 + var $providers = array();
49 + var $post_type_obj = '';
70 50
71 - function __construct() {
51 + function __construct() {
52 + require_once FCA_EOI_PLUGIN_DIR . 'includes/classes/k/k.php';
53 + require_once FCA_EOI_PLUGIN_DIR . 'includes/eoi-powerups.php';
54 + require_once FCA_EOI_PLUGIN_DIR . 'includes/eoi-post-types.php';
55 + require_once FCA_EOI_PLUGIN_DIR . 'includes/eoi-layout.php';
56 + require_once FCA_EOI_PLUGIN_DIR . 'includes/eoi-shortcode.php';
57 + require_once FCA_EOI_PLUGIN_DIR . 'includes/eoi-widget.php';
58 + require_once FCA_EOI_PLUGIN_DIR . 'includes/eoi-pointer.php';
59 + require_once FCA_EOI_PLUGIN_DIR . 'includes/eoi-tour-pointer.php';
60 + require_once FCA_EOI_PLUGIN_DIR . 'includes/eoi-activity.php';
61 + require_once FCA_EOI_PLUGIN_DIR . 'includes/eoi-functions.php';
72 62
73 - require FCA_EOI_PLUGIN_DIR . 'includes/eoi-error-handler.php';
74 - require FCA_EOI_PLUGIN_DIR . 'includes/eoi-post-types.php';
75 - require FCA_EOI_PLUGIN_DIR . 'includes/eoi-settings.php';
76 - require FCA_EOI_PLUGIN_DIR . 'includes/eoi-layout.php';
77 - require FCA_EOI_PLUGIN_DIR . 'includes/eoi-shortcode.php';
78 - require FCA_EOI_PLUGIN_DIR . 'includes/eoi-widget.php';
79 - require FCA_EOI_PLUGIN_DIR . 'includes/eoi-pointer.php';
80 - require FCA_EOI_PLUGIN_DIR . 'includes/eoi-tour-pointer.php';
81 - require FCA_EOI_PLUGIN_DIR . 'includes/eoi-activity.php';
82 - require FCA_EOI_PLUGIN_DIR . 'includes/eoi-init.php';
83 - require FCA_EOI_PLUGIN_DIR . 'includes/compatibility-mode/eoi-compatibility-mode.php';
63 + global $fca_eoi_shortcodes;
64 +
65 + // Settings
66 + $this->settings['shortcode'] = $this->shortcode;
67 + $this->settings['shortcode_aliases'] = $this->shortcode_aliases;
68 + $this->settings['provider'] = $this->provider;
84 69
85 - global $fca_eoi_shortcodes;
70 + // Load all providers
71 + foreach ( glob( FCA_EOI_PLUGIN_DIR . 'providers/*', GLOB_ONLYDIR ) as $provider_path ) {
72 + $provider_id = basename( $provider_path );
73 + require_once "$provider_path/provider.php";
74 + $this->settings[ 'providers' ][ $provider_id ] = call_user_func( "provider_$provider_id" );
75 + }
86 76
87 - $post_type = $this->get_current_post_type();
88 - $eoi_settings = get_option('easy_opt_in_settings');
77 + // Add provider to settings
78 + $providers_available = array_keys( $this->settings[ 'providers' ] );
79 +
80 + //set current post type to setting array
81 + $this->settings[ 'post_type' ] = get_post_type();
89 82
90 - // Settings
91 - $this->settings();
83 + // If there is only one provider, use it
84 + if( 1 == count( $providers_available ) ) {
85 + $this->provider = $this->settings[ 'provider' ] = $providers_available[ 0 ];
86 + $this->distro = 'free';
87 + $this->settings['distribution'] = 'free';
88 + } else {
89 + $this->distro = 'premium';
90 + $this->settings['distribution'] = 'premium';
91 + }
92 92
93 - // Add provider to settings
94 - $providers_available = array_keys( $this->settings[ 'providers' ] );
95 -
96 - //set current post type to setting array
97 - $this->settings[ 'post_type' ] = $post_type;
93 + // Include provider helper class(es)
94 + foreach ( $providers_available as $provider ) {
95 + require_once FCA_EOI_PLUGIN_DIR . "providers/$provider/functions.php";
96 + }
98 97
99 - // If there is only one provider, use it
100 - if( 1 == count( $providers_available ) ) {
101 - $this->provider = $this->settings[ 'provider' ] = $providers_available[ 0 ];
102 - }
98 + // Load extensions
99 + $this->post_type_obj = new EasyOptInsPostTypes($this->settings);
100 + $fca_eoi_shortcodes = new EasyOptInsShortcodes($this->settings);
101 + $widget = new EasyOptInsWidgetHelper($this->settings);
102 + EasyOptInsActivity::get_instance()->settings = $this->settings;
103 103
104 - // Distributions
105 - if( 1 == count( $providers_available ) ) {
106 - $this->distro = 'free';
107 - $this->settings['distribution'] = 'free';
108 - } else {
109 - $this->distro = 'premium';
110 - $this->settings['distribution'] = 'premium';
111 - }
112 -
113 - // Add options that are stored in DB if any
114 - $this->settings[ 'eoi_settings' ] = $eoi_settings;
115 -
116 - // Include provider helper class(es)
117 - foreach ( $providers_available as $provider ) {
118 - require $this->settings[ 'plugin_dir' ] . "providers/$provider/functions.php";
119 - }
120 -
121 - // Load extensions
122 - $post_types = new EasyOptInsPostTypes($this->settings);
123 - $fca_eoi_shortcodes = new EasyOptInsShortcodes($this->settings);
124 - $widget = new EasyOptInsWidgetHelper($this->settings);
125 - EasyOptInsActivity::get_instance()->settings = $this->settings;
126 - EasyOptInsInit::get_instance()->setup();
127 -
128 - // Load subscribing banner for free users
129 - if( 1 == count( $providers_available ) ) {
130 - $pointer = new EasyOptInsPointer( $this->settings );
131 - }
132 -
133 - //Load tour pointer
134 - //$tour_pointer = new EOITourPointer($this->settings );
135 -
136 - //load compatibility-mode
137 - new EasyOptInsCompatibilityMode( $this->settings );
138 -
139 - //load EasyOptIns Upgrade notifications
140 - if( count( $providers_available ) === 1 ) {
141 - require plugin_dir_path( __FILE__ ) . 'includes/eoi-upgrade.php';
142 - new EasyOptInsUpgrade( $this->settings );
143 - }
144 - }
145 -
146 - function get_current_post_type() {
147 -
148 - global $post, $typenow, $current_screen;
149 -
150 - if ( $post && $post->post_type ) {
151 - return $post->post_type;
152 - } elseif( $typenow ) {
153 - return $typenow;
154 - } elseif( $current_screen && $current_screen->post_type ) {
155 - return $current_screen->post_type;
156 - } elseif( isset( $_REQUEST['post_type'] ) ) {
157 - return sanitize_key( $_REQUEST['post_type'] );
158 - } elseif ( isset( $_REQUEST['post'] ) && $_REQUEST['post'] ) {
159 - $id = $_REQUEST['post'];
160 - $post_obj = get_post( $id );
161 - if( $post_obj ) {
162 - return $post_obj->post_type;
163 - }
164 - }
165 - return null;
166 - }
167 -
168 - function settings() {
169 - $this->settings['plugin_dir'] = FCA_EOI_PLUGIN_DIR;
170 - $this->settings['plugin_url'] = FCA_EOI_PLUGIN_URL;
171 - $this->settings['shortcode'] = $this->shortcode;
172 - $this->settings['shortcode_aliases'] = $this->shortcode_aliases;
173 - $this->settings['version'] = $this->ver;
174 - $this->settings['provider'] = $this->provider;
175 -
176 - // Load all providers
177 - foreach ( glob( $this->settings[ 'plugin_dir' ] . 'providers/*', GLOB_ONLYDIR ) as $provider_path ) {
178 - $provider_id = basename( $provider_path );
179 - require_once "$provider_path/provider.php";
180 - $this->settings[ 'providers' ][ $provider_id ] = call_user_func( "provider_$provider_id" );
181 - }
182 -
183 - if ( $_SERVER['REQUEST_METHOD'] == 'POST' && ! empty( $_POST['paf_submit'] ) ) {
184 - $options_before = get_option('paf');
185 - $options_after = empty( $_POST['paf'] ) ? array() : $_POST['paf'];
186 - $options_changed = true;
187 - } else {
188 - $options_changed = false;
189 - }
190 -
191 - // Load all powerups
192 - foreach ( glob( $this->settings[ 'plugin_dir' ] . 'powerups/*', GLOB_ONLYDIR ) as $powerup_path ) {
193 - $powerup_id = basename( $powerup_path );
194 - $powerup_id = preg_replace('/(\d+)_/', '', $powerup_id);
195 -
196 - require_once "$powerup_path/powerup.php";
197 - $function_name = "powerup_$powerup_id";
198 - $this->settings[ 'powerups' ][ $powerup_id ] = call_user_func( $function_name, $this->settings );
199 -
200 - $option_name = 'eoi_' . $function_name;
201 - if ( $options_changed ) {
202 - $hook_function_name = null;
203 -
204 - if ( empty( $options_before[ $option_name ] ) && ! empty( $options_after[ $option_name ] ) ) {
205 - $hook_function_name = $function_name . '_on_activate';
206 - } else if ( ! empty( $options_before[ $option_name ] ) && empty( $options_after[ $option_name ] ) ) {
207 - $hook_function_name = $function_name . '_on_deactivate';
208 - }
209 -
210 - if ( ! empty( $hook_function_name ) && function_exists( $hook_function_name ) ) {
211 - call_user_func( $hook_function_name, $this->settings );
212 - }
213 - }
214 - }
215 -
216 - paf_pages( array( 'eoi_powerups' => array(
217 - 'title' => __( 'Power Ups Settings' ),
218 - 'menu_title' => __( 'Power Ups' ),
219 - 'parent' => 'edit.php?post_type=easy-opt-ins',
220 - ) ) );
221 -
222 - $this->settings['error_text'] = array(
223 - 'field_required' => 'Error: This field is required.',
224 - 'invalid_email' => "Error: Please enter a valid email address. For example \"max@domain.com\"."
225 - );
226 - }
104 + // Load subscribing banner for free users
105 + if( $this->distro == 'free' ) {
106 + $pointer = new EasyOptInsPointer( $this->settings );
107 + //load EasyOptIns Upgrade notifications
108 + require plugin_dir_path( __FILE__ ) . 'includes/eoi-upgrade.php';
109 + new EasyOptInsUpgrade( $this->settings );
110 + }
111 + }
112 + }
227 113 }
228 -}
229 114
230 115 require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
231 116
232 117 if ( ! is_plugin_active( plugin_basename( __FILE__ ) ) ) {
233 - function fca_eoi_fail_activation( $message ) {
234 - wp_die( sprintf(
235 - '<h2>%s</h2><p>%s</p><p><a class="button button-large" href="%s">%s</a></p>'
236 - , __( 'Ooops!' )
237 - , __( $message )
238 - , admin_url( 'plugins.php' )
239 - , __( 'Go to plugins page' )
240 - ) );
241 - }
118 + function fca_eoi_fail_activation( $message ) {
119 + wp_die( sprintf(
120 + '<h2>%s</h2><p>%s</p><p><a class="button button-large" href="%s">%s</a></p>'
121 + , __( 'Ooops!' )
122 + , __( $message )
123 + , admin_url( 'plugins.php' )
124 + , __( 'Go to plugins page' )
125 + ) );
126 + }
242 127
243 - function fca_eoi_activation() {
244 - $plugins = get_plugins();
128 + function fca_eoi_activation() {
129 + $plugins = get_plugins();
130 +
131 + // Fail to activate the plugin if other Optin Cat plugins are already active
132 + foreach ( $plugins as $file => $plugin ) {
133 + if ( stripos( $plugin['PluginURI'], 'fatcatapps.com/optincat' ) !== false && is_plugin_active( $file ) ) {
134 + $current_plugin = $plugins[ plugin_basename( __FILE__ ) ];
135 + fca_eoi_fail_activation(
136 + 'Only one Optin Cat plugin can be active at a time, but you already have ' .
137 + htmlspecialchars( $plugin['Name'] ) . ' active. ' .
138 + 'Please deactivate it before activating ' .
139 + htmlspecialchars( $current_plugin['Name'] ) . '.' );
140 + }
141 + }
245 142
246 - // Fail to activate the plugin if other Optin Cat plugins are already active
247 - foreach ( $plugins as $file => $plugin ) {
248 - if ( stripos( $plugin['PluginURI'], 'fatcatapps.com/optincat' ) !== false && is_plugin_active( $file ) ) {
249 - $current_plugin = $plugins[ plugin_basename( __FILE__ ) ];
250 - fca_eoi_fail_activation(
251 - 'Only one Optin Cat plugin can be active at a time, but you already have ' .
252 - htmlspecialchars( $plugin['Name'] ) . ' active. ' .
253 - 'Please deactivate it before activating ' .
254 - htmlspecialchars( $current_plugin['Name'] ) . '.' );
255 - }
256 - }
143 + // Fail to activate the plugin if the providers or layouts directories are empty
144 + $providers = glob( FCA_EOI_PLUGIN_DIR . 'providers/*', GLOB_ONLYDIR );
145 + $layouts = glob( FCA_EOI_PLUGIN_DIR . 'layouts/*', GLOB_ONLYDIR );
257 146
258 - // Fail to activate the plugin if the providers or layouts directories are empty
259 - $providers = glob( FCA_EOI_PLUGIN_DIR . 'providers/*', GLOB_ONLYDIR );
260 - $layouts = glob( FCA_EOI_PLUGIN_DIR . 'layouts/*', GLOB_ONLYDIR );
147 + if ( empty( $providers ) || empty( $layouts ) ) {
148 + fca_eoi_fail_activation( 'Something went wrong. Please delete the plugin and install it again.' );
149 + }
150 +
151 + require FCA_EOI_PLUGIN_DIR . 'includes/eoi-functions.php';
261 152
262 - if ( empty( $providers ) || empty( $layouts ) ) {
263 - fca_eoi_fail_activation( 'Something went wrong. Please delete the plugin and install it again.' );
264 - }
153 + //convert everyone to new Post Meta Format if they are on OLD
154 + fca_eoi_convert_post_meta();
155 + //convert options from 'paf' to 'fca_eoi_settings'
156 + fca_eoi_convert_option_save();
157 +
158 + //check for users of custom form, otherwise that feature is disabled
159 + $opt = get_option ( 'fca_eoi_allow_customform', '' );
160 + if ( empty ( $opt ) ) {
161 + fca_eoi_set_custom_form_depreciation();
162 + }
163 +
164 + // If everything went well, continue with the activation setup
165 + require FCA_EOI_PLUGIN_DIR . 'includes/eoi-activity.php';
166 + EasyOptInsActivity::get_instance()->setup();
167 + }
265 168
266 - // If everything went well, continue with the activation setup
267 - require FCA_EOI_PLUGIN_DIR . 'includes/eoi-activity.php';
268 - EasyOptInsActivity::get_instance()->setup();
269 -
270 - require FCA_EOI_PLUGIN_DIR . 'includes/eoi-init.php';
271 - EasyOptInsInit::get_instance()->on_activate();
272 - }
273 -
274 - // If the plugin is not yet active, check for any obstacles in activation
275 - register_activation_hook( __FILE__, 'fca_eoi_activation' );
276 - return;
169 + // If the plugin is not yet active, check for any obstacles in activation
170 + register_activation_hook( __FILE__, 'fca_eoi_activation' );
171 + return;
277 172 }
278 173
279 174 $dh_easy_opt_ins_plugin = new DhEasyOptIns();