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

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