/** * 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; }