/**
     * Automatic Set all Product Attribute as Compare Features
     *
     */
    public function automatic_add_features()
    {
        $current_db_version = get_option('woocommerce_db_version', null);
        if (version_compare($current_db_version, '2.1.0', '<') && null !== $current_db_version) {
            global $woocommerce;
            $top_variations = $woocommerce->get_attribute_taxonomies();
        } else {
            $top_variations = wc_get_attribute_taxonomies();
        }
        if ($top_variations) {
            foreach ($top_variations as $top_variation) {
                $check_existed = WC_Compare_Data::get_count("field_name='" . trim(addslashes($top_variation->attribute_label)) . "'");
                if ($check_existed < 1) {
                    $child_variations = get_terms(version_compare($current_db_version, '2.1.0', '<') && null !== $current_db_version ? $woocommerce->attribute_taxonomy_name($top_variation->attribute_name) : wc_attribute_taxonomy_name($top_variation->attribute_name), array('parent' => 0, 'hide_empty' => 0, 'hierarchical' => 0));
                    $default_value = '';
                    if (count($child_variations) > 0) {
                        $line = '';
                        foreach ($child_variations as $child_variation) {
                            $default_value .= $line . addslashes($child_variation->name);
                            $line = '
';
                        }
                    }
                    if (trim($default_value) != '') {
                        $feature_id = WC_Compare_Data::insert_row(array('field_name' => trim(addslashes($top_variation->attribute_label)), 'field_type' => 'checkbox', 'field_unit' => '', 'default_value' => $default_value));
                    } else {
                        $feature_id = WC_Compare_Data::insert_row(array('field_name' => trim(addslashes($top_variation->attribute_label)), 'field_type' => 'input-text', 'field_unit' => '', 'default_value' => ''));
                    }
                }
            }
        }
    }
 public static function auto_create_compare_feature()
 {
     if (isset($_POST['add_new_attribute']) && $_POST['add_new_attribute']) {
         //check_admin_referer( 'woocommerce-add-new_attribute' );
         $attribute_name = (string) sanitize_title($_POST['attribute_name']);
         $attribute_type = (string) $_POST['attribute_type'];
         $attribute_label = (string) $_POST['attribute_label'];
         if (!$attribute_label) {
             $attribute_label = ucwords($attribute_name);
         }
         if (!$attribute_name) {
             $attribute_name = sanitize_title($attribute_label);
         }
         if ($attribute_name && strlen($attribute_name) < 30 && $attribute_type && !taxonomy_exists('pa_' . $attribute_name)) {
             $check_existed = WC_Compare_Data::get_count("field_name='" . $attribute_label . "'");
             if ($check_existed < 1) {
                 $feature_id = WC_Compare_Data::insert_row(array('field_name' => $attribute_label, 'field_type' => 'input-text', 'field_unit' => '', 'default_value' => ''));
             }
         }
     }
 }
 public static function init_features_actions()
 {
     $result_msg = '';
     if (isset($_REQUEST['bt_save_field'])) {
         $field_name = trim(strip_tags(addslashes($_REQUEST['field_name'])));
         if (isset($_REQUEST['field_id']) && $_REQUEST['field_id'] > 0) {
             $field_id = trim($_REQUEST['field_id']);
             $count_field_name = WC_Compare_Data::get_count("field_name = '" . $field_name . "' AND id != '" . $field_id . "'");
             if ($field_name != '' && $count_field_name == 0) {
                 $result = WC_Compare_Data::update_row($_REQUEST);
                 if (isset($_REQUEST['field_cats']) && count((array) $_REQUEST['field_cats']) > 0) {
                     foreach ($_REQUEST['field_cats'] as $cat_id) {
                         $check_existed = WC_Compare_Categories_Fields_Data::get_count("cat_id='" . $cat_id . "' AND field_id='" . $field_id . "'");
                         if ($check_existed == 0) {
                             WC_Compare_Categories_Fields_Data::insert_row($cat_id, $field_id);
                         }
                     }
                     WC_Compare_Categories_Fields_Data::delete_row("field_id='" . $field_id . "' AND cat_id NOT IN(" . implode(',', $_REQUEST['field_cats']) . ")");
                 } else {
                     WC_Compare_Categories_Fields_Data::delete_row("field_id='" . $field_id . "'");
                 }
                 $result_msg = '<div class="updated" id="result_msg"><p>' . __('Compare Feature Successfully edited', 'woo_cp') . '.</p></div>';
             } else {
                 $result_msg = '<div class="error" id="result_msg"><p>' . __('Nothing edited! You already have a Compare Feature with that name. Use the Features Search function to find it. Use unique names to edit each Compare Feature.', 'woo_cp') . '</p></div>';
             }
         } else {
             $count_field_name = WC_Compare_Data::get_count("field_name = '" . $field_name . "'");
             if ($field_name != '' && $count_field_name == 0) {
                 $field_id = WC_Compare_Data::insert_row($_REQUEST);
                 if ($field_id > 0) {
                     WC_Compare_Categories_Fields_Data::delete_row("field_id='" . $field_id . "'");
                     if (isset($_REQUEST['field_cats']) && count((array) $_REQUEST['field_cats']) > 0) {
                         foreach ($_REQUEST['field_cats'] as $cat_id) {
                             WC_Compare_Categories_Fields_Data::insert_row($cat_id, $field_id);
                         }
                     }
                     $result_msg = '<div class="updated" id="result_msg"><p>' . __('Compare Feature Successfully created', 'woo_cp') . '.</p></div>';
                 } else {
                     $result_msg = '<div class="error" id="result_msg"><p>' . __('Compare Feature Error created', 'woo_cp') . '.</p></div>';
                 }
             } else {
                 $result_msg = '<div class="error" id="result_msg"><p>' . __('Nothing created! You already have a Compare Feature with that name. Use the Features Search function to find it. Use unique names to create each Compare Feature.', 'woo_cp') . '</p></div>';
             }
         }
     } elseif (isset($_REQUEST['bt_delete'])) {
         $list_fields_delete = $_REQUEST['un_fields'];
         if (is_array($list_fields_delete) && count($list_fields_delete) > 0) {
             foreach ($list_fields_delete as $field_id) {
                 WC_Compare_Data::delete_row($field_id);
                 WC_Compare_Categories_Fields_Data::delete_row("field_id='" . $field_id . "'");
             }
             $result_msg = '<div class="updated" id="result_msg"><p>' . __('Compare Feature successfully deleted', 'woo_cp') . '.</p></div>';
         } else {
             $result_msg = '<div class="updated" id="result_msg"><p>' . __('Please select item(s) to delete', 'woo_cp') . '.</p></div>';
         }
     }
     if (isset($_REQUEST['act']) && $_REQUEST['act'] == 'field-delete') {
         $field_id = trim($_REQUEST['field_id']);
         if (isset($_REQUEST['cat_id']) && $_REQUEST['cat_id'] > 0) {
             WC_Compare_Categories_Fields_Data::delete_row("field_id='" . $field_id . "' AND cat_id='" . $_REQUEST['cat_id'] . "'");
             $result_msg = '<div class="updated" id="result_msg"><p>' . __('Compare Feature successfully removed', 'woo_cp') . '.</p></div>';
         } else {
             WC_Compare_Data::delete_row($field_id);
             WC_Compare_Categories_Fields_Data::delete_row("field_id='" . $field_id . "'");
             $result_msg = '<div class="updated" id="result_msg"><p>' . __('Compare Feature successfully deleted', 'woo_cp') . '.</p></div>';
         }
     }
     return $result_msg;
 }