PluginProbe
Ever Compare – Products Compare Plugin for WooCommerce / 1.2.7
Ever Compare – Products Compare Plugin for WooCommerce v1.2.7
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.2.7, at ever-compare.php

193 lines 5.3 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.2.7
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: 9.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.2.7';
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 $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 }
126
127 /**
128 * Do stuff upon plugin activation
129 *
130 * @return void
131 */
132 public function activate() {
133 $installer = new EverCompare\Installer();
134 $installer->run();
135 }
136
137 /**
138 * Admin Notices
139 * @return void
140 */
141 public function admin_notices() {
142 $notice = new EverCompare\Admin\Notices();
143 $notice->notice();
144 }
145
146 /**
147 * [set_image_size] Set Image Size
148 */
149 public function set_image_size(){
150
151 $image_dimention = ever_compare_get_option( 'image_size', 'ever_compare_table_settings_tabs', array( 'width'=>300, 'height'=>300 ) );
152 if( isset( $image_dimention ) && is_array( $image_dimention ) ){
153 $hard_crop = !empty( ever_compare_get_option( 'hard_crop', 'ever_compare_table_settings_tabs' ) ) ? true : false;
154 add_image_size( 'ever-compare-image', $image_dimention['width'], $image_dimention['height'], $hard_crop );
155 }
156
157 }
158
159 /**
160 * [wc_image_filter_size]
161 * @return [array]
162 */
163 public function wc_image_filter_size(){
164
165 $image_dimention = ever_compare_get_option( 'image_size', 'ever_compare_table_settings_tabs', array('width'=>300,'height'=>300) );
166 $hard_crop = !empty( ever_compare_get_option( 'hard_crop', 'ever_compare_table_settings_tabs' ) ) ? true : false;
167
168 if( isset( $image_dimention ) && is_array( $image_dimention ) ){
169 return array(
170 'width' => isset( $image_dimention['width'] ) ? absint( $image_dimention['width'] ) : 300,
171 'height' => isset( $image_dimention['height'] ) ? absint( $image_dimention['height'] ) : 300,
172 'crop' => isset( $hard_crop ) ? 1 : 0,
173 );
174 }
175
176 }
177
178 }
179
180 /**
181 * Initializes the main plugin
182 *
183 * @return ever_compare
184 */
185 function ever_compare() {
186 if( ! class_exists('Woolentor_Ever_Compare') ){
187 return Ever_Compare::instance();
188 }
189 }
190
191 // Start Our journey
192 ever_compare();
193