Changeset 949453
- Timestamp:
- 07/16/2014 08:11:34 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
plugmatter-optin-feature-box-lite/trunk/plug_featurebox_lite.php
r949450 r949453 1 1 <?php 2 2 /* 3 Plugin Name: Plugmatter Feature Box %NAME%3 Plugin Name: Plugmatter Feature Box Lite 4 4 Plugin URI: http://plugmatter.com/feature-box 5 5 Description: Plugmatter Optin Feature Box is the Only List Building Plugin that Allows You to Create High Converting Optin Feature Boxes for Your WordPress Site. … … 10 10 11 11 //--- Global values--- 12 define('Plugmatter_PACKAGE', ' %PACKAGE%');12 define('Plugmatter_PACKAGE', 'plug_featurebox_lite'); 13 13 //-------------------- 14 include_once("main.php"); 14 15 global $wpdb; 16 $siteurl = get_option('siteurl'); 17 define('Plugmatter_FILE_PATH', dirname(__FILE__)); 18 define('Plugmatter_DIR_NAME', basename(Plugmatter_FILE_PATH)); 19 define('Plugmatter_FOLDER', dirname(plugin_basename(__FILE__))); 20 define('Plugmatter_URL', $siteurl.'/wp-content/plugins/' . Plugmatter_DIR_NAME); 21 define('Plugmatter_GOOGLE_FONTS_KEY', "AIzaSyBKo64RSV_kiZ8T7_J5LNv_npD0YERvr5g"); 22 define('Plugmatter_UPNOTE', "<span style='color:red;'>This feature is available in higher packages. <a href='http://plugmatter.com/my/packages' target='_blank'><b>Upgrade Now!</b></a></span>"); 23 //------------------------------------------------ 24 25 26 register_activation_hook(__FILE__,'plugmatter_install'); 27 register_uninstall_hook(__FILE__ , 'plugmatter_uninstall' ); 28 29 function plugmatter_install() { 30 error_reporting(0); 31 global $wpdb; 32 33 $template_tbl_name = $wpdb->prefix.'plugmatter_templates'; 34 $abtest_tbl_name = $wpdb->prefix.'plugmatter_ab_test'; 35 $ab_stats_tbl_name = $wpdb->prefix.'plugmatter_ab_stats'; 36 37 $template_tbl = "CREATE TABLE IF NOT EXISTS $template_tbl_name ( 38 id INT(9) NOT NULL AUTO_INCREMENT, 39 temp_name VARCHAR(80) NOT NULL, 40 base_temp_name VARCHAR(80) NOT NULL, 41 params TEXT, 42 UNIQUE KEY id (id) 43 ) DEFAULT CHARSET=utf8;"; 44 $wpdb->query($template_tbl); 45 46 $abtest_tbl = "CREATE TABLE IF NOT EXISTS $abtest_tbl_name ( 47 id INT(9) NOT NULL AUTO_INCREMENT, 48 compaign_name VARCHAR(80) NOT NULL, 49 boxA VARCHAR(80) NOT NULL, 50 boxB VARCHAR(100), 51 home VARCHAR(8), 52 page VARCHAR(8), 53 post VARCHAR(8), 54 archieve VARCHAR(8), 55 start_date VARCHAR(80) NOT NULL, 56 active VARCHAR(8), 57 UNIQUE KEY id (id) 58 ) DEFAULT CHARSET=utf8;"; 59 $wpdb->query($abtest_tbl); 60 61 $ab_stats_tbl = "CREATE TABLE IF NOT EXISTS $ab_stats_tbl_name ( 62 id INT(9) NOT NULL AUTO_INCREMENT, 63 date DATE NOT NULL, 64 ab_id INT(9) NOT NULL, 65 a_imp INT(9), 66 b_imp INT(9), 67 a_conv INT(9), 68 b_conv INT(9), 69 UNIQUE KEY id (id) 70 ) DEFAULT CHARSET=utf8;"; 71 $wpdb->query($ab_stats_tbl); 72 73 if(get_option("Plugmatter_PACKAGE") != Plugmatter_PACKAGE) { 74 delete_option('Plugmatter_PACKAGE'); 75 delete_option('Plugmatter_Featurebox_License'); 76 } 77 } 78 79 function plugmatter_uninstall() { 80 global $wpdb; 81 $template_tbl_name = $wpdb->prefix.'plugmatter_templates'; 82 $abtest_tbl_name = $wpdb->prefix.'plugmatter_ab_test'; 83 $ab_stats_tbl_name = $wpdb->prefix.'plugmatter_ab_stats'; 84 85 $structure = "drop table if exists $template_tbl_name"; 86 $wpdb->query($structure); 87 $structure2 = "drop table if exists $abtest_tbl_name"; 88 $wpdb->query($structure2); 89 $structure3 = "drop table if exists $ab_stats_tbl_name"; 90 $wpdb->query($structure3); 91 $delete_options = "DELETE FROM wp_options WHERE option_name LIKE 'plugmatter_%' "; 92 $wpdb->query($delete_options); 93 delete_option('Plugmatter_PACKAGE'); 94 delete_option('Plugmatter_Featurebox_License'); 95 } 96 97 add_action('admin_menu', 'plugmatter_plugin_menu'); 98 function plugmatter_plugin_menu() { 99 if(Plugmatter_PACKAGE == "plug_featurebox_lite") { 100 $plug_menu_lable = "Feature Box Lite"; 101 } else if(Plugmatter_PACKAGE == "plug_featurebox_single"){ 102 $plug_menu_lable = "Feature Box Single"; 103 } else { 104 $plug_menu_lable = "Feature Box Pro"; 105 } 106 add_menu_page("Plugmatter Featurebox - Settings",$plug_menu_lable,'manage_options',__FILE__, 'setting_submenu_page_callback',plugins_url( Plugmatter_DIR_NAME.'/images/icon.png') ); 107 add_submenu_page(__FILE__,"","",'manage_options',__FILE__, 'setting_submenu_page_callback'); 108 add_submenu_page( __FILE__, 'Plugmatter Featurebox - Templates', 'Templates','manage_options', 'template_submenu-page','template_submenu_page_callback' ); 109 add_submenu_page( __FILE__, 'Plugmatter Featurebox - Split-Testing','Split-Testing','manage_options', 'ab_test_submenu_page','ab_test_submenu_page_callback' ); 110 add_submenu_page( __FILE__, 'Plugmatter Featurebox - General Settings', 'General Settings','manage_options', 'settings_submenu-page','setting_submenu_page_callback' ); 111 112 add_submenu_page( '', 'Plugmatter Featurebox - Edit Template','','manage_options', 'edit_template_submenu-page','edit_template_submenu_page_callback' ); 113 add_submenu_page( '', 'Plugmatter Featurebox - New A/B Split-Test Campaign','','manage_options', 'add_ab_test_submenu_page','add_ab_test_submenu_page_callback' ); 114 115 add_submenu_page( '', 'Plugmatter Featurebox - View A/B Split-Test Stats','','manage_options', 'ab_test_stats_page','ab_test_stats_page_callback' ); 116 add_submenu_page( '', 'Plugmatter Featurebox - ajax','','manage_options', 'ajax-page','ajax_page_callback' ); 117 118 add_submenu_page( '', 'Plugmatter Featurebox - Register for Support','','manage_options', 'license_submenu_page','license_submenu_page_callback' ); 119 } 120 121 add_action( 'wp_ajax_get_fonts', 'get_fonts' ); 122 123 function get_fonts() { 124 $google_fonts = wp_remote_get('https://www.googleapis.com/webfonts/v1/webfonts?key='.Plugmatter_GOOGLE_FONTS_KEY, array( 'sslverify' => false )); 125 $fonts = json_decode($google_fonts["body"]); 126 $json_fonts = array(); 127 foreach($fonts->items as $itm) { 128 $family= $itm->family; 129 $var1=''; 130 foreach($itm->variants as $var){ 131 $var1=$var1.$var.','; 132 } 133 $variants= substr($var1,0,-1); 134 $json_fonts[] = array("family"=>$family,"variants"=>$variants); 135 } 136 print json_encode($json_fonts); 137 die(); 138 } 139 140 141 add_action('wp_ajax_plug_load_template', 'plug_load_template'); 142 function plug_load_template() { 143 $tem_name = $_GET["data"]; 144 include(Plugmatter_FILE_PATH . "/templates/". $tem_name . "/template.php"); 145 die(); 146 } 147 148 149 add_action('wp_ajax_plug_get_page_content', 'plug_get_page_content'); 150 function plug_get_page_content() { 151 $page_id = $_POST['page_id']; 152 $thispost = get_post( $page_id ); 153 $content = $thispost->post_content; 154 echo $content; 155 die(); 156 } 157 158 function license_submenu_page_callback() { 159 set_js_globals(); 160 include('license.php'); 161 } 162 163 function ajax_page_callback() { 164 set_js_globals(); 165 include('ajax_update.php'); 166 } 167 168 function ab_test_stats_page_callback(){ 169 set_js_globals(); 170 wp_enqueue_script('jquery'); 171 include('ab_statistics.php'); 172 } 173 174 function setting_submenu_page_callback() { 175 set_js_globals(); 176 if(get_option('Plugmatter_Featurebox_License') == "") { 177 include('license.php'); 178 } else { 179 include('settings.php'); 180 } 181 } 182 183 function ab_test_submenu_page_callback() { 184 set_js_globals(); 185 include('ab_test.php'); 186 } 187 188 function template_submenu_page_callback() { 189 set_js_globals(); 190 include('templates.php'); 191 } 192 193 function edit_template_submenu_page_callback() { 194 set_js_globals(); 195 include('edit_template.php'); 196 } 197 function add_ab_test_submenu_page_callback() { 198 set_js_globals(); 199 include('ab_test_add.php'); 200 } 201 202 function set_js_globals() { 203 echo "<script type='text/javascript'> 204 var plugin_url = '".plugins_url(Plugmatter_DIR_NAME.'/')."'; 205 var site_url = '".admin_url('admin-ajax.php')."'; 206 </script>"; 207 } 208 209 add_action('admin_enqueue_scripts', 'pm_admin_styles'); 210 function pm_admin_styles($hook) { 211 //echo $hook; 212 if('admin_page_edit_template_submenu-page' == $hook ) { 213 wp_enqueue_style('thickbox'); 214 wp_register_style('pm_inline_edit_style', plugins_url('css/pm_inline_edit.css', __FILE__)); 215 wp_enqueue_style('pm_inline_edit_style'); 216 wp_enqueue_style('pm_button_style', plugins_url('/css/pm_btn_style.css', __FILE__)); 217 wp_enqueue_style('pm_bootstrap', plugins_url('/css/pm_bootstrap.css', __FILE__)); 218 } 219 wp_register_style('pm_settings', plugins_url('css/style.css', __FILE__)); 220 wp_enqueue_style('pm_settings'); 221 wp_register_style('pm_headfont', "http://fonts.googleapis.com/css?family=Fauna+One"); 222 wp_enqueue_style('pm_headfont'); 223 } 224 225 add_action('admin_enqueue_scripts', 'pm_admin_scripts'); 226 function pm_admin_scripts($hook) { 227 //echo $hook; 228 wp_enqueue_script('jquery'); 229 if('admin_page_edit_template_submenu-page' == $hook ) { 230 wp_enqueue_script('media-upload'); 231 wp_enqueue_script('thickbox'); 232 wp_enqueue_media(); 233 wp_register_script('pm_inline_edit_style_js',plugins_url('js/inline_edit.js', __FILE__), array('jquery')); 234 wp_enqueue_script('pm_inline_edit_style_js'); 235 wp_register_script('pm__farbtastic_js',plugins_url('js/farbtastic.js', __FILE__), array('jquery')); 236 wp_enqueue_script('pm__farbtastic_js'); 237 wp_register_script('pm_image_uploader', plugins_url('js/image_uploader.js', __FILE__), array('jquery','media-upload','thickbox')); 238 wp_enqueue_script('pm_image_uploader'); 239 }else if('plugmatter_page_settings_submenu-page' == $hook ) { 240 }else if('admin_page_ab_test_stats_page' == $hook ){ 241 wp_register_script('jqueryflot',plugins_url('js/jquery.flot.js', __FILE__), array('jquery')); 242 wp_enqueue_script('jqueryflot'); 243 wp_register_script('excanvas_min',plugins_url('js/excanvas.min.js', __FILE__), array('jquery')); 244 wp_enqueue_script('excanvas_min'); 245 } 246 } 247 248 add_action( 'wp_enqueue_scripts', 'pm_frontend_scripts' ); 249 function pm_frontend_scripts($hook) { 250 wp_enqueue_script('jquery'); 251 } 252 253 254 function plugmatter_custom_hook() { 255 wp_enqueue_script('jquery'); 256 set_js_globals(); 257 if(get_option("Plugmatter_PACKAGE") == "plug_featurebox_lite") { 258 include_once('frontend_lite.php'); 259 } else if(get_option("Plugmatter_PACKAGE") == "plug_featurebox_single") { 260 include_once('frontend_single.php'); 261 } else { 262 include_once('frontend_pro.php'); 263 } 264 } 265 266 //-------------------------------------------------------------------------------------------------------- 267 268 add_action( 'add_meta_boxes', 'pm_post_featurebox' ); 269 function pm_post_featurebox() { 270 add_meta_box('myplugin_sectionid',__('Plugmatter Feature Box',''),'pm_post_inner_box','post'); 271 add_meta_box('myplugin_sectionid',__('Plugmatter Feature Box',''),'pm_post_inner_box','page'); 272 } 273 274 function pm_post_inner_box( $post ) { 275 wp_nonce_field( plugin_basename( __FILE__ ), 'pm_meta_templ_id' ); 276 277 $value = get_post_meta($post->ID, "pm_meta_templ_id", true); 278 279 global $wpdb; 280 $table = $wpdb->prefix.'plugmatter_templates'; 281 $templt_list = $wpdb->get_results("SELECT id,temp_name,base_temp_name,params FROM $table"); 282 283 echo "Select Template for this Post: "; 284 if(get_option("Plugmatter_PACKAGE") == "plug_featurebox_pro" || get_option("Plugmatter_PACKAGE") == "plug_featurebox_dev") { 285 echo "<select name ='pm_meta_templ_sel' >"; 286 echo "<option value='-1' "; 287 if($value == "-1") { 288 echo "selected=selected"; 289 } 290 echo " > Default </option>"; 291 292 echo "<option value='-2' "; 293 if($value == "-2") { 294 echo "selected=selected"; 295 } 296 echo " > Disable </option>"; 297 298 foreach ( $templt_list as $templ_list ) { 299 echo "<option value=".$v = $templ_list->id; 300 if($value == $v) { 301 echo " selected='selected'"; 302 } 303 echo " >".$templ_list->temp_name."</option>"; 304 } 305 echo "</select>"; 306 } else { 307 echo Plugmatter_UPNOTE; 308 } 309 } 310 311 add_action( 'post_updated', 'pm_save_postdata' ); 312 function pm_save_postdata( $post_id ) { 313 if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) 314 return; 315 316 if ('page' == $_POST['post_type'] ) { 317 if ( !current_user_can( 'edit_page', $post_id ) ) 318 return; 319 } 320 else { 321 if ( !current_user_can( 'edit_post', $post_id ) ) 322 return; 323 } 324 $pm_meta_templ_id = $_POST['pm_meta_templ_sel']; 325 if( get_post_meta( $post_id, 'pm_meta_templ_id') == "") { 326 add_post_meta($post_id, 'pm_meta_templ_id', $pm_meta_templ_id, true ); 327 328 } else if($pm_meta_templ_id != get_post_meta($post_id, $pm_meta_templ_id, true)) { 329 update_post_meta($post_id, 'pm_meta_templ_id', $pm_meta_templ_id); 330 331 } elseif($pm_meta_templ_id == "") { 332 delete_post_meta($post_id, 'pm_meta_templ_id', get_post_meta($post_id, 'pm_meta_templ_id', true)); 333 334 } 335 } 336 337 338 add_action( 'wp_ajax_pm_ab_track', 'pm_ab_track' ); 339 add_action('wp_ajax_nopriv_pm_ab_track', 'pm_ab_track'); 340 341 function pm_ab_track() { 342 global $wpdb; 343 $ab_stats_tbl = $wpdb->prefix.'plugmatter_ab_stats'; 344 $ab_test_tbl = $wpdb->prefix.'plugmatter_ab_test'; 345 346 $joined = explode( ':', $_POST['ab_meta'] ); 347 $ab_id = $joined[0]; 348 $templ_no = $joined[1]; 349 $date=date("Y-m-d"); 350 $box = ""; 351 352 if(isset($_POST['track']) && $_POST['track'] == "conv"){ 353 $date=date("Y-m-d"); 354 $results = $wpdb->get_row("SELECT * FROM $ab_test_tbl WHERE active = 'yes' AND id = '".$ab_id."' "); 355 if($results){ 356 if($results->boxA == $templ_no){ 357 $box = "a_conv"; 358 }else{ 359 $box = "b_conv"; 360 } 361 } 362 $upq="UPDATE $ab_stats_tbl SET $box = $box+1 WHERE date = '$date' AND ab_id = '$ab_id'"; 363 $wpdb->query($upq); 364 365 } else if(isset($_POST['track']) && $_POST['track'] == "imp"){ 366 $results = $wpdb->get_row("SELECT * FROM $ab_test_tbl WHERE active = 'yes' AND id = '".$ab_id."' "); 367 if($results){ 368 if($results->boxA == $templ_no){ 369 $upq="UPDATE $ab_stats_tbl SET a_imp = a_imp+1 WHERE date = '$date' AND ab_id = '$ab_id'"; 370 $wpdb->query($upq); 371 }else{ 372 $upq="UPDATE $ab_stats_tbl SET b_imp = b_imp+1 WHERE date = '$date' AND ab_id = '$ab_id'"; 373 $wpdb->query($upq); 374 } 375 } 376 } 377 die(); 378 } 379 380 if(Plugmatter_PACKAGE != "plug_featurebox_lite") { 381 // About Auto Update 382 require_once ("wp_plugin_auto_update.php"); 383 $wp_plugin_auto_update = new WpPluginAutoUpdate('http://plugmatter.com/updates/index.php', 'stable', basename(dirname(__FILE__))); 384 385 add_filter('pre_set_site_transient_update_plugins', array($wp_plugin_auto_update, 'check_for_plugin_update')); 386 add_filter('plugins_api', array($wp_plugin_auto_update, 'plugins_api_call'), 10, 3); 387 } 15 388 16 389 ?>
Note: See TracChangeset
for help on using the changeset viewer.