/** * Constructor * * @access public * @since 1.0.0 */ public function __construct() { // populate default fields for the comparison table $this->default_fields = YITH_Woocompare_Helper::standard_fields(); // add image size YITH_Woocompare_Helper::set_image_size(); //Actions add_action('init', array($this, 'init')); add_action('admin_enqueue_scripts', array($this, 'enqueue_styles_scripts')); add_action('woocommerce_settings_tabs_yith_woocompare', array($this, 'print_plugin_options')); add_action('woocommerce_update_options_yith_woocompare', array($this, 'update_options')); if (!has_action('woocommerce_admin_field_slider')) { add_action('woocommerce_admin_field_slider', array($this, 'admin_fields_slider')); } if (!has_action('woocommerce_admin_field_picker')) { add_action('woocommerce_admin_field_picker', array($this, 'admin_fields_picker')); } if (!has_action('woocommerce_admin_field_attributes')) { add_action('woocommerce_admin_field_attributes', array($this, 'admin_fields_attributes')); } add_action('admin_print_footer_scripts', array($this, 'admin_fields_image_deps')); add_action('woocommerce_update_option_slider', array($this, 'admin_update_option')); add_action('woocommerce_update_option_picker', array($this, 'admin_update_option')); add_action('woocommerce_update_option_attributes', array($this, 'admin_update_option')); //Filters add_filter('woocommerce_settings_tabs_array', array($this, 'add_tab_woocommerce')); // YITH WCWL Loaded do_action('yith_woocompare_loaded'); }
/** * Create new Woocommerce admin field: checkboxes * * @access public * @param array $value * @return void * @since 1.0.0 */ public function admin_fields_attributes($value) { $fields = YITH_Woocompare_Helper::standard_fields(); $all = array(); $checked = get_option(str_replace('_attrs', '', $value['id']), $value['default'] == 'all' ? $all : array()); foreach (array_keys($fields) as $field) { $all[$field] = true; } // then add fields that are not still saved foreach ($checked as $k => $v) { unset($all[$k]); } $checkboxes = array_merge($checked, $all); ?> <tr valign="top"> <th scope="row" class="titledesc"> <label for="<?php echo esc_attr($value['id']); ?> "><?php echo $value['name']; ?> </label> </th> <td class="forminp attributes"> <p class="description"><?php echo $value['desc']; ?> </p> <ul class="fields"> <?php foreach ($checkboxes as $slug => $checked) { if (!isset($fields[$slug])) { continue; } ?> <li> <label> <input type="checkbox" name="<?php echo $value['id']; ?> []" id="<?php echo $value['id']; ?> _<?php echo $slug; ?> " value="<?php echo $slug; ?> "<?php checked($checked); ?> /> <?php echo $fields[$slug]; ?> </label> </li> <?php } ?> </ul> <input type="hidden" name="<?php echo $value['id']; ?> _positions" value="<?php echo implode(',', array_keys($checkboxes)); ?> " /> </td> </tr> <?php }
/** * Constructor * * @return YITH_Woocompare_Frontend * @since 1.0.0 */ public function __construct() { // set coookiename if (is_multisite()) { $this->cookie_name .= '_' . get_current_blog_id(); } // populate the list of products $this->products_list = isset($_COOKIE[$this->cookie_name]) ? unserialize($_COOKIE[$this->cookie_name]) : array(); // populate default fields for the comparison table $this->default_fields = YITH_Woocompare_Helper::standard_fields(); // add image size YITH_Woocompare_Helper::set_image_size(); // Add link or button in the products list or if (get_option('yith_woocompare_compare_button_in_product_page') == 'yes') { add_action('woocommerce_single_product_summary', array($this, 'add_compare_link'), 35); } if (get_option('yith_woocompare_compare_button_in_products_list') == 'yes') { add_action('woocommerce_after_shop_loop_item', array($this, 'add_compare_link'), 20); } add_action('init', array($this, 'add_product_to_compare_action')); add_action('init', array($this, 'remove_product_from_compare_action')); add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts')); add_action('template_redirect', array($this, 'compare_table_html')); // add the shortcode add_shortcode('yith_compare_button', array($this, 'compare_button_sc')); // AJAX add_action('wp_ajax_' . $this->action_add, array($this, 'add_product_to_compare_ajax')); add_action('wp_ajax_nopriv_' . $this->action_add, array($this, 'add_product_to_compare_ajax')); add_action('wp_ajax_' . $this->action_remove, array($this, 'remove_product_from_compare_ajax')); add_action('wp_ajax_nopriv_' . $this->action_remove, array($this, 'remove_product_from_compare_ajax')); add_action('wp_ajax_' . $this->action_view, array($this, 'refresh_widget_list_ajax')); add_action('wp_ajax_nopriv_' . $this->action_view, array($this, 'refresh_widget_list_ajax')); return $this; }