PluginProbe
Ever Compare – Products Compare Plugin for WooCommerce / 1.3.4
Ever Compare – Products Compare Plugin for WooCommerce v1.3.4
1.3.7 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 trunk 1.0.0 1.0.1 1.0.2 All 31 releases
ever-compare / ever-compare.php

ever-compare.php in Ever Compare – Products Compare Plugin for WooCommerce 1.3.4, at ever-compare.php

207 lines 6.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: Ever Compare
4 * Description: WooCommerce Product compare plugin
5 * Plugin URI: https://hasthemes.com/plugins/
6 * Author: HasTheme
7 * Author URI: https://hasthemes.com/
8 * Version: 1.3.4
9 * License: GPL2 or later
10 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
11 * Text Domain: ever-compare
12 * Domain Path: /languages
13 * WC tested up to: 10.0.2
14 */
15
16 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
17
18 /**
19 * Plugin Main Class
20 */
21 final class Ever_Compare{
22
23 /**
24 * Plugin version
25 *
26 * @var string
27 */
28 const version = '1.3.4';
29
30 /**
31 * [$_instance]
32 * @var null
33 */
34 private static $_instance = null;
35
36 /**
37 * [instance] Initializes a singleton instance
38 * @return [Base]
39 */
40 public static function instance() {
41 if ( is_null( self::$_instance ) ) {
42 self::$_instance = new self();
43 }
44 return self::$_instance;
45 }
46
47 /**
48 * [__construct] Class Constructor
49 */
50 private function __construct(){
51
52 $this->define_constants();
53 add_action( 'plugins_loaded', [ $this, 'includes' ] );
54
55 register_activation_hook( EVERCOMPARE_FILE, [ $this, 'activate' ] );
56
57 add_action( 'init', [ $this, 'i18n' ] );
58 add_action( 'plugins_loaded', [ $this, 'init_plugin' ] );
59
60 // Compatible With WooCommerce Custom Order Tables
61 add_action( 'before_woocommerce_init', function() {
62 if ( class_exists( '\Automattic\WooCommerce\Utilities\FeaturesUtil' ) ) {
63 \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', EVERCOMPARE_FILE, true );
64 }
65 } );
66 }
67
68 /**
69 * Define the required plugin constants
70 *
71 * @return void
72 */
73 public function define_constants() {
74 define( 'EVERCOMPARE_VERSION', self::version );
75 define( 'EVERCOMPARE_FILE', __FILE__ );
76 define( 'EVERCOMPARE_PATH', __DIR__ );
77 define( 'EVERCOMPARE_DIR', plugin_dir_path( EVERCOMPARE_FILE ) );
78 define( 'EVERCOMPARE_URL', plugins_url( '', EVERCOMPARE_FILE ) );
79 define( 'EVERCOMPARE_ASSETS', EVERCOMPARE_URL . '/assets' );
80 define( 'EVERCOMPARE_BASE', plugin_basename( EVERCOMPARE_FILE ) );
81 }
82
83 /**
84 * [includes] Load file
85 * @return [void]
86 */
87 public function includes(){
88 require_once EVERCOMPARE_PATH . '/vendor/autoload.php';
89 if ( ! function_exists('is_plugin_active') ){ include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); }
90 }
91
92 /**
93 * [i18n] Load text domain
94 * @return [void]
95 */
96 public function i18n() {
97 load_plugin_textdomain( 'ever-compare', false, dirname( plugin_basename( EVERCOMPARE_FILE ) ) . '/languages/' );
98 }
99
100 /**
101 * Initialize the plugin
102 *
103 * @return void
104 */
105 public function init_plugin() {
106
107 EverCompare\Assets::instance();
108
109 if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
110 EverCompare\Ajax::instance();
111 }
112
113 if ( is_admin() ) {
114 $this->admin_notices();
115 EverCompare\Admin::instance();
116 }
117 EverCompare\Frontend::instance();
118
119 // add image size
120 $this->set_image_size();
121
122 // let's filter the woocommerce image size
123 add_filter( 'woocommerce_get_image_size_ever-compare-image', [ $this, 'wc_image_filter_size' ], 10, 1 );
124
125 // let's filter the speculation rules
126 add_filter( 'wp_speculation_rules_href_exclude_paths', function( $exclude_paths ) {
127 $compare_page_id = ever_compare_get_option( 'compare_page', 'ever_compare_table_settings_tabs' );
128 if ( $compare_page_id ) {
129 $compare_page_url = get_permalink( $compare_page_id );
130 $compare_path = parse_url( $compare_page_url, PHP_URL_PATH );
131 if ( $compare_path ) {
132 $compare_path = trailingslashit( $compare_path );
133 $exclude_paths[] = "{$compare_path}*";
134 }
135 }
136 return $exclude_paths;
137 });
138 }
139
140 /**
141 * Do stuff upon plugin activation
142 *
143 * @return void
144 */
145 public function activate() {
146 $this->includes();
147 $installer = new EverCompare\Installer();
148 $installer->run();
149 }
150
151 /**
152 * Admin Notices
153 * @return void
154 */
155 public function admin_notices() {
156 $notice = new EverCompare\Admin\Notices();
157 $notice->notice();
158 }
159
160 /**
161 * [set_image_size] Set Image Size
162 */
163 public function set_image_size(){
164
165 $image_dimention = ever_compare_get_option( 'image_size', 'ever_compare_table_settings_tabs', array( 'width'=>300, 'height'=>300 ) );
166 if( isset( $image_dimention ) && is_array( $image_dimention ) ){
167 $hard_crop = !empty( ever_compare_get_option( 'hard_crop', 'ever_compare_table_settings_tabs' ) ) ? true : false;
168 add_image_size( 'ever-compare-image', $image_dimention['width'], $image_dimention['height'], $hard_crop );
169 }
170
171 }
172
173 /**
174 * [wc_image_filter_size]
175 * @return [array]
176 */
177 public function wc_image_filter_size(){
178
179 $image_dimention = ever_compare_get_option( 'image_size', 'ever_compare_table_settings_tabs', array('width'=>300,'height'=>300) );
180 $hard_crop = !empty( ever_compare_get_option( 'hard_crop', 'ever_compare_table_settings_tabs' ) ) ? true : false;
181
182 if( isset( $image_dimention ) && is_array( $image_dimention ) ){
183 return array(
184 'width' => isset( $image_dimention['width'] ) ? absint( $image_dimention['width'] ) : 300,
185 'height' => isset( $image_dimention['height'] ) ? absint( $image_dimention['height'] ) : 300,
186 'crop' => isset( $hard_crop ) ? 1 : 0,
187 );
188 }
189
190 }
191
192 }
193
194 /**
195 * Initializes the main plugin
196 *
197 * @return ever_compare
198 */
199 function ever_compare() {
200 if( ! class_exists('Woolentor_Ever_Compare') ){
201 return Ever_Compare::instance();
202 }
203 }
204
205 // Start Our journey
206 ever_compare();
207