public function add_meta_all_products() { // Add deactivate compare feature meta for all products when activate this plugin $have_deactivate_meta = get_posts(array('numberposts' => -1, 'post_type' => array('product', 'product_variation'), 'post_status' => array('publish', 'private'), 'meta_key' => '_woo_deactivate_compare_feature')); $have_ids = array(); if (is_array($have_deactivate_meta) && count($have_deactivate_meta) > 0) { foreach ($have_deactivate_meta as $product) { $have_ids[] = $product->ID; } } if (is_array($have_ids) && count($have_ids) > 0) { $no_deactivate_meta = get_posts(array('numberposts' => -1, 'post_type' => array('product', 'product_variation'), 'post_status' => array('publish', 'private'), 'post__not_in' => $have_ids)); } else { $no_deactivate_meta = get_posts(array('numberposts' => -1, 'post_type' => array('product', 'product_variation'), 'post_status' => array('publish', 'private'))); } if (is_array($no_deactivate_meta) && count($no_deactivate_meta) > 0) { foreach ($no_deactivate_meta as $product) { add_post_meta($product->ID, '_woo_deactivate_compare_feature', ''); } } // Add deactivate compare feature meta for all products when activate this plugin $have_compare_category_meta = get_posts(array('numberposts' => -1, 'post_type' => array('product', 'product_variation'), 'post_status' => array('publish', 'private'), 'meta_key' => '_woo_compare_category_name')); $have_ids = array(); if (is_array($have_compare_category_meta) && count($have_compare_category_meta) > 0) { foreach ($have_compare_category_meta as $product) { $have_ids[] = $product->ID; } } if (is_array($have_ids) && count($have_ids) > 0) { $no_compare_category_meta = get_posts(array('numberposts' => -1, 'post_type' => array('product', 'product_variation'), 'post_status' => array('publish', 'private'), 'post__not_in' => $have_ids)); } else { $no_compare_category_meta = get_posts(array('numberposts' => -1, 'post_type' => array('product', 'product_variation'), 'post_status' => array('publish', 'private'))); } if (is_array($no_compare_category_meta) && count($no_compare_category_meta) > 0) { foreach ($no_compare_category_meta as $product) { add_post_meta($product->ID, '_woo_compare_category_name', ''); } } // Add compare category name into product have compare category id $have_compare_category_id_meta = get_posts(array('numberposts' => -1, 'post_type' => array('product', 'product_variation'), 'post_status' => array('publish', 'private'), 'meta_key' => '_woo_compare_category')); if (is_array($have_compare_category_id_meta) && count($have_compare_category_id_meta) > 0) { foreach ($have_compare_category_id_meta as $product) { $compare_category = get_post_meta($product->ID, '_woo_compare_category', true); $category_data = WC_Compare_Categories_Data::get_row($compare_category); @update_post_meta($product->ID, '_woo_compare_category_name', stripslashes($category_data->category_name)); } } }
public static function save_compare_meta_boxes($post_id) { $post_status = get_post_status($post_id); $post_type = get_post_type($post_id); if ($post_type == 'product' && $post_status != false) { if (isset($_REQUEST['_woo_deactivate_compare_feature']) && $_REQUEST['_woo_deactivate_compare_feature'] == 'no') { update_post_meta($post_id, '_woo_deactivate_compare_feature', 'no'); } else { update_post_meta($post_id, '_woo_deactivate_compare_feature', 'yes'); } $compare_category = 0; if (isset($_REQUEST['_woo_compare_category'])) { $compare_category = $_REQUEST['_woo_compare_category']; update_post_meta($post_id, '_woo_compare_category', $compare_category); } $category_data = WC_Compare_Categories_Data::get_row($compare_category); if ($category_data != NULL) { update_post_meta($post_id, '_woo_compare_category_name', stripslashes($category_data->category_name)); } $compare_fields = WC_Compare_Categories_Fields_Data::get_results("cat_id='" . $compare_category . "'", 'cf.field_order ASC'); if (is_array($compare_fields) && count($compare_fields) > 0) { foreach ($compare_fields as $field_data) { if (isset($_REQUEST['_woo_compare_' . $field_data->field_key])) { update_post_meta($post_id, '_woo_compare_' . $field_data->field_key, $_REQUEST['_woo_compare_' . $field_data->field_key]); } } } if (isset($_REQUEST['variable_post_id'])) { $variable_ids = $_REQUEST['variable_post_id']; foreach ($variable_ids as $variation_id) { $post_type = get_post_type($variation_id); if ($post_type == 'product_variation') { if (isset($_REQUEST['variable_woo_deactivate_compare_feature'][$variation_id]) && $_REQUEST['variable_woo_deactivate_compare_feature'][$variation_id] == 'no') { update_post_meta($variation_id, '_woo_deactivate_compare_feature', 'no'); } else { update_post_meta($variation_id, '_woo_deactivate_compare_feature', 'yes'); } $variation_compare_category = 0; if (isset($_REQUEST['variable_woo_compare_category'][$variation_id])) { $variation_compare_category = $_REQUEST['variable_woo_compare_category'][$variation_id]; update_post_meta($variation_id, '_woo_compare_category', $variation_compare_category); } $variation_category_data = WC_Compare_Categories_Data::get_row($variation_compare_category); if ($variation_category_data != NULL) { update_post_meta($variation_id, '_woo_compare_category_name', stripslashes($variation_category_data->category_name)); } $compare_fields = WC_Compare_Categories_Fields_Data::get_results("cat_id='" . $variation_compare_category . "'", 'cf.field_order ASC'); if (is_array($compare_fields) && count($compare_fields) > 0) { foreach ($compare_fields as $field_data) { if (isset($_REQUEST['variable_woo_compare_' . $field_data->field_key][$variation_id])) { update_post_meta($variation_id, '_woo_compare_' . $field_data->field_key, $_REQUEST['variable_woo_compare_' . $field_data->field_key][$variation_id]); } } } } } } } }
public static function woocp_categories_manager() { global $wpdb; ?> <h3><?php if (isset($_REQUEST['act']) && $_REQUEST['act'] == 'cat-edit') { _e('Edit Compare Product Categories', 'woo_cp'); } else { _e('Add Compare Product Categories', 'woo_cp'); } ?> </h3> <?php if (isset($_REQUEST['act']) && $_REQUEST['act'] != 'cat-edit') { ?> <p><?php _e('Create Categories based on groups of products that share the same compare feature list.', 'woo_cp'); ?> </p><?php } ?> <form action="admin.php?page=woo-compare-features" method="post" name="form_add_compare" id="form_add_compare"> <?php if (isset($_REQUEST['act']) && $_REQUEST['act'] == 'cat-edit') { $category_id = $_REQUEST['category_id']; $cat_data = WC_Compare_Categories_Data::get_row($category_id); ?> <input type="hidden" value="<?php echo $category_id; ?> " name="category_id" id="category_id" /> <?php } ?> <table class="form-table"> <tbody> <tr valign="top"> <th class="titledesc" scope="rpw"><label for="category_name"><?php if (isset($_REQUEST['act']) && $_REQUEST['act'] == 'cat-edit') { _e('Edit Category Name', 'woo_cp'); } else { _e('Category Name', 'woo_cp'); } ?> </label></th> <td class="forminp"><input type="text" name="category_name" id="category_name" value="<?php if (!empty($cat_data)) { echo stripslashes($cat_data->category_name); } ?> " style="min-width:300px" /></td> </tr> </tbody> </table> <p class="submit"> <input type="submit" name="bt_save_cat" id="bt_save_cat" class="button button-primary" value="<?php if (isset($_REQUEST['act']) && $_REQUEST['act'] == 'cat-edit') { _e('Save', 'woo_cp'); } else { _e('Create', 'woo_cp'); } ?> " /> <?php if (isset($_REQUEST['act']) && $_REQUEST['act'] == 'cat-edit') { ?> <input type="button" class="button" onclick="window.location='admin.php?page=woo-compare-features'" value="<?php _e('Cancel', 'woo_cp'); ?> " /><?php } ?> </p> </form> <?php }
public static function woocp_products_manager() { $compare_product_message = ''; $paged = isset($_POST['paged']) ? $_POST['paged'] : 1; $rp = isset($_POST['rp']) ? $_POST['rp'] : 10; $cp_show_variations = isset($_POST['cp_show_variations']) ? $_POST['cp_show_variations'] : 0; $sortname = isset($_POST['sortname']) ? $_POST['sortname'] : 'title'; $sortorder = isset($_POST['sortorder']) ? $_POST['sortorder'] : 'asc'; $query = isset($_POST['query']) ? $_POST['query'] : ''; $qtype = isset($_POST['qtype']) ? $_POST['qtype'] : ''; if (isset($_REQUEST['bt_update_product_features'])) { if (isset($_REQUEST['productid']) && $_REQUEST['productid'] > 0) { $post_id = $_REQUEST['productid']; $post_status = get_post_status($post_id); $post_type = get_post_type($post_id); if (($post_type == 'product' || $post_type == 'product_variation') && $post_status != false) { if (isset($_REQUEST['_woo_deactivate_compare_feature']) && $_REQUEST['_woo_deactivate_compare_feature'] == 'no') { update_post_meta($post_id, '_woo_deactivate_compare_feature', 'no'); } else { update_post_meta($post_id, '_woo_deactivate_compare_feature', 'yes'); } $compare_category = $_REQUEST['_woo_compare_category']; update_post_meta($post_id, '_woo_compare_category', $compare_category); if ($compare_category > 0) { $category_data = WC_Compare_Categories_Data::get_row($compare_category); if ($category_data != NULL) { update_post_meta($post_id, '_woo_compare_category_name', stripslashes($category_data->category_name)); } $compare_fields = WC_Compare_Categories_Fields_Data::get_results("cat_id='" . $compare_category . "'", 'cf.field_order ASC'); if (is_array($compare_fields) && count($compare_fields) > 0) { foreach ($compare_fields as $field_data) { if (isset($_REQUEST['_woo_compare_' . $field_data->field_key])) { update_post_meta($post_id, '_woo_compare_' . $field_data->field_key, $_REQUEST['_woo_compare_' . $field_data->field_key]); } } } } else { update_post_meta($post_id, '_woo_compare_category_name', ''); } } $compare_product_message = '<div class="updated" id="result_msg"><p>' . __('Compare Product Feature Fields Successfully updated.', 'woo_cp') . '.</p></div>'; } } ?> <style> .update_message{padding:10px; background-color:#FFFFCC;border:1px solid #DDDDDD;margin-bottom:15px;} body .flexigrid div.sDiv{display:block;} .flexigrid div.sDiv .sDiv2 select{display:none;} .flexigrid div.sDiv .cp_search, .flexigrid div.sDiv .cp_reset{cursor:pointer;} .edit_product_compare{cursor:pointer; text-decoration:underline; color:#06F;} .icon32-compare-product { background:url(<?php echo WOOCP_IMAGES_URL; ?> /a3-plugins.png) no-repeat left top !important; } .pro_feature_fields { padding:0 10px 10px 10px; } </style> <div id="htmlForm"> <div style="clear:both"></div> <div class="wrap a3rev_panel_container a3rev_manager_panel_container"> <div id="a3_plugin_panel_container"><div id="a3_plugin_panel_fields"> <div class="icon32 icon32-compare-product" id="icon32-compare-product"><br></div> <h2><?php _e('WooCommerce Compare Products Manager', 'woo_cp'); ?> </h2> <?php echo $compare_product_message; ?> <div style="clear:both; margin-bottom:20px;"></div> <div class="pro_feature_fields"> <?php global $wc_compare_admin_init; $wc_compare_admin_init->upgrade_top_message(true); ?> <table id="woocp_products_manager" style="display:none"></table> </div> <?php $woocp_products_manager = wp_create_nonce("woocp-products-manager"); ?> <script type="text/javascript"> function alert_upgrade(text) { var answer = confirm(text) if (answer){ window.open("<?php echo WOOCP_AUTHOR_URI; ?> ", '_blank') }else{ return false; } } (function($){ $(function(){ $("#woocp_products_manager").flexigrid({ url: '<?php echo admin_url('admin-ajax.php', 'relative') . '?action=woocp_get_products&security=' . $woocp_products_manager; ?> ', dataType: 'json', width: 'auto', resizable: false, colModel : [ {display: '<?php _e("No", 'woo_cp'); ?> ', name : 'number', width : 20, sortable : false, align: 'right'}, {display: '<?php _e("Product Name", 'woo_cp'); ?> ', name : 'title', width : 200, sortable : true, align: 'left'}, {display: '<?php _e("Product Category", 'woo_cp'); ?> ', name : 'cat', width : 110, sortable : false, align: 'left'}, {display: '<?php _e("Compare Category", 'woo_cp'); ?> ', name : '_woo_compare_category_name', width : 110, sortable : true, align: 'left'}, {display: '<?php _e("Activated / Deactivated", 'woo_cp'); ?> ', name : '_woo_deactivate_compare_feature', width : 110, sortable : false, align: 'center'}, {display: '<?php _e("Edit", 'woo_cp'); ?> ', name : 'edit', width : 30, sortable : false, align: 'center'} ], searchitems : [ {display: '<?php _e("Product Name", 'woo_cp'); ?> ', name : 'title', isdefault: true} ], sortname: "title", sortorder: "asc", usepager: true, title: '<?php _e("Products", 'woo_cp'); ?> ', findtext: '<?php _e("Find Product Name", 'woo_cp'); ?> ', useRp: true, rp: <?php echo $rp; ?> , //results per page newp: <?php echo $paged; ?> , page: <?php echo $paged; ?> , query: '<?php echo $query; ?> ', qtype: '<?php echo $qtype; ?> ', sortname: '<?php echo $sortname; ?> ', sortorder: '<?php echo $sortorder; ?> ', rpOptions: [10, 15, 20, 30, 50, 100], //allowed per-page values showToggleBtn: false, //show or hide column toggle popup showTableToggleBtn: false, height: 'auto', variations: '<?php echo $cp_show_variations; ?> ' }); $(document).on("click", ".edit_product_compare", function(ev){ return alert_upgrade('<?php _e('Please upgrade to the Pro Version to activate Products express Compare feature manager', 'woo_cp'); ?> '); }); }); })(jQuery); </script> </div><div id="a3_plugin_panel_upgrade_area"><div id="a3_plugin_panel_extensions"><?php echo WC_Compare_Functions::plugin_pro_notice(); ?> </div></div></div> </div> </div> <?php }