PluginProbe
Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant / 1.10.0
Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant v1.10.0
2.3.2 2.3.1 2.3.0 2.2.8 2.2.7 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.10.5 1.11.0 1.11.1 1.11.2 1.6 1.7 1.8 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 1.9.10 1.9.11 All 60 releases
merchant / inc / modules / side-cart / class-side-cart.php

class-side-cart.php in Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant 1.10.0, at inc/modules/side-cart/class-side-cart.php

271 lines 9.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Side Cart
5 *
6 * @package Merchant
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit; // Exit if accessed directly
11 }
12
13 /**
14 * Side Cart Class.
15 *
16 */
17 class Merchant_Side_Cart extends Merchant_Add_Module {
18
19 /**
20 * Module ID.
21 */
22 const MODULE_ID = 'side-cart';
23
24 /**
25 * Is module preview.
26 *
27 */
28 public static $is_module_preview = false;
29
30 /**
31 * Constructor.
32 *
33 */
34 public function __construct() {
35 // Module id.
36 $this->module_id = self::MODULE_ID;
37
38 // WooCommerce only.
39 $this->wc_only = true;
40
41 // Parent construct.
42 parent::__construct();
43
44 // Module default settings.
45 $this->module_default_settings = array(
46 'show_after_add_to_cart' => 1,
47 'show_after_add_to_cart_single_product' => 0,
48 'show_on_cart_url_click' => 1,
49 );
50
51 // Module data.
52 $this->module_data = Merchant_Admin_Modules::$modules_data[ self::MODULE_ID ];
53 $this->module_data['preview_url'] = $this->set_module_preview_url( array( 'type' => 'shop' ) );
54
55 // Module section.
56 $this->module_section = $this->module_data['section'];
57
58 // Module options path.
59 $this->module_options_path = MERCHANT_DIR . 'inc/modules/' . self::MODULE_ID . '/admin/options.php';
60
61 // Is module preview page.
62 if ( is_admin() && parent::is_module_settings_page() ) {
63 self::$is_module_preview = true;
64
65 // Enqueue admin styles.
66 add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_css' ) );
67
68 // Enqueue admin scripts.
69 add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
70
71 // Admin preview box.
72 add_filter( 'merchant_module_preview', array( $this, 'render_admin_preview' ), 10, 2 );
73
74 // Custom CSS.
75 add_filter( 'merchant_custom_css', array( $this, 'admin_custom_css' ) );
76 }
77 }
78
79 /**
80 * Admin enqueue CSS.
81 *
82 * @return void
83 */
84 public function admin_enqueue_css() {
85 if ( $this->is_module_settings_page() ) {
86 wp_enqueue_style( 'merchant-' . self::MODULE_ID, MERCHANT_URI . 'assets/css/modules/' . Merchant_Floating_Mini_Cart::MODULE_ID . '/floating-mini-cart.min.css', array(),
87 MERCHANT_VERSION );
88 wp_enqueue_style( 'merchant-admin-' . self::MODULE_ID,
89 MERCHANT_URI . 'assets/css/modules/' . Merchant_Floating_Mini_Cart::MODULE_ID . '/admin/preview.min.css',
90 array(),
91 MERCHANT_VERSION );
92
93 wp_enqueue_style( 'merchant-admin-preview-' . self::MODULE_ID,
94 MERCHANT_URI . 'assets/css/modules/' . self::MODULE_ID . '/admin/preview.min.css',
95 array(),
96 MERCHANT_VERSION
97 );
98 }
99 }
100
101 /**
102 * Admin Enqueue scripts.
103 *
104 * @return void
105 */
106 public function admin_enqueue_scripts() {
107 // Register and enqueue the main module script.
108 wp_enqueue_script( 'merchant-' . self::MODULE_ID,
109 MERCHANT_URI . 'assets/js/modules/' . Merchant_Floating_Mini_Cart::MODULE_ID . '/floating-mini-cart.min.js',
110 array(),
111 MERCHANT_VERSION,
112 true );
113
114 wp_enqueue_script( 'merchant-preview-' . self::MODULE_ID,
115 MERCHANT_URI . 'assets/js/modules/' . self::MODULE_ID . '/admin/preview.min.js',
116 array(),
117 MERCHANT_VERSION,
118 true );
119
120 wp_localize_script( 'merchant-preview-' . self::MODULE_ID, 'merchant_side_cart_params', array(
121 'keywords' => array(
122 'multi_categories' => esc_html__( 'Multi Categories', 'merchant' ),
123 'category_trigger' => esc_html__( 'Category Trigger:', 'merchant' ),
124 'no_cats_selected' => esc_html__( 'No Categories Selected', 'merchant' ),
125 'no_products_selected' => esc_html__( 'No Products Selected', 'merchant' ),
126 'multi_products' => esc_html__( 'Multi Products', 'merchant' ),
127 'all_products' => esc_html__( 'All Products', 'merchant' ),
128 ),
129 ) );
130 }
131
132
133 /**
134 * Render admin preview
135 *
136 * @param Merchant_Admin_Preview $preview
137 * @param string $module
138 *
139 * @return Merchant_Admin_Preview
140 */
141 public function render_admin_preview( $preview, $module ) {
142 if ( $module === self::MODULE_ID ) {
143 ob_start();
144 self::admin_preview_content();
145 $content = ob_get_clean();
146
147 // HTML.
148 $preview->set_html( $content );
149 }
150
151 return $preview;
152 }
153
154 /**
155 * Admin preview content.
156 *
157 * @return void
158 */
159 public function admin_preview_content() {
160 ?>
161
162 <div class="mrc-preview-single-product-elements">
163 <div class="mrc-preview-left-column">
164 <div class="mrc-preview-product-image-wrapper">
165 <div class="mrc-preview-product-image"></div>
166 <div class="mrc-preview-product-image-thumbs">
167 <div class="mrc-preview-product-image-thumb"></div>
168 <div class="mrc-preview-product-image-thumb"></div>
169 <div class="mrc-preview-product-image-thumb"></div>
170 </div>
171 </div>
172 </div>
173 <div class="mrc-preview-right-column">
174 <div class="mrc-preview-text-placeholder"></div>
175 <div class="mrc-preview-text-placeholder mrc-mw-70"></div>
176 <div class="mrc-preview-text-placeholder mrc-mw-30"></div>
177 <div class="mrc-preview-text-placeholder"></div>
178 <div class="mrc-preview-text-placeholder mrc-mw-70"></div>
179 <div class="mrc-preview-text-placeholder mrc-mw-30"></div>
180 <div class="mrc-preview-text-placeholder"></div>
181 <div class="mrc-preview-text-placeholder mrc-mw-70"></div>
182 <div class="mrc-preview-text-placeholder mrc-mw-30"></div>
183 <div class="mrc-preview-text-placeholder"></div>
184 <div class="mrc-preview-text-placeholder mrc-mw-70"></div>
185 <div class="mrc-preview-addtocart-placeholder"></div>
186 </div>
187 </div>
188
189 <div class="merchant-floating-side-mini-cart-show">
190 <div class="merchant-floating-side-mini-cart-overlay merchant-floating-side-mini-cart-toggle"></div>
191 <div class="merchant-floating-side-mini-cart">
192 <div class="merchant-floating-side-mini-cart-body">
193 <a href="#" class="merchant-floating-side-mini-cart-close-button merchant-floating-side-mini-cart-toggle"
194 title="<?php
195 echo esc_attr__( 'Close the side mini cart', 'merchant' ); ?>">
196 <?php
197 echo wp_kses( Merchant_SVG_Icons::get_svg_icon( 'icon-cancel' ), merchant_kses_allowed_tags( array(), false ) ); ?>
198 </a>
199
200 <div class="merchant-floating-side-mini-cart-widget">
201 <div class="merchant-floating-side-mini-cart-widget-title"><?php
202 echo esc_html__( 'Your Cart', 'merchant' ); ?></div>
203 <div class="widget_shopping_cart_content">
204 <ul class="woocommerce-mini-cart cart_list product_list_widget">
205 <li class="woocommerce-mini-cart-item mini_cart_item">
206 <a href="#" class="remove remove_from_cart_button">×</a>
207 <a href="#">
208 <span class="mrc-product-image"></span>
209 <?php
210 echo esc_html__( 'Product Sample Title', 'merchant' ); ?>
211 </a>
212 <span class="quantity">1 ×
213 <span class="woocommerce-Price-amount amount">
214 <bdi><span class="woocommerce-Price-currencySymbol">$</span>12.00 </bdi>
215 </span>
216 </span>
217 </li>
218 <li class="woocommerce-mini-cart-item mini_cart_item">
219 <a href="#" class="remove remove_from_cart_button">×</a>
220 <a href="#">
221 <span class="mrc-product-image"></span>
222 <?php
223 echo esc_html__( 'Product Sample Title', 'merchant' ); ?>
224 </a>
225 <span class="quantity">1 ×
226 <span class="woocommerce-Price-amount amount">
227 <bdi><span class="woocommerce-Price-currencySymbol">$</span>12.00 </bdi>
228 </span>
229 </span>
230 </li>
231 </ul>
232
233 <p class="woocommerce-mini-cart__total total">
234 <strong><?php
235 echo esc_html__( 'Subtotal:', 'merchant' ); ?></strong>
236 <span class="woocommerce-Price-amount amount">
237 <bdi><span class="woocommerce-Price-currencySymbol">$</span>12.00 </bdi>
238 </span>
239 </p>
240 <p class="woocommerce-mini-cart__buttons buttons">
241 <a href="#" class="button wc-forward"><?php echo esc_html__( 'View cart', 'merchant' ); ?></a>
242 <a href="#" class="button checkout wc-forward"><?php echo esc_html__( 'Checkout', 'merchant' ); ?></a>
243 </p>
244 </div>
245 </div>
246 </div>
247 </div>
248 </div>
249
250 <?php
251 }
252
253 /**
254 * Admin custom CSS.
255 *
256 * @param string $css The custom CSS.
257 *
258 * @return string $css The custom CSS.
259 */
260 public function admin_custom_css( $css ) {
261 $css .= Merchant_Floating_Mini_Cart::get_module_custom_css();
262
263 return $css;
264 }
265 }
266
267 // Initialize the module.
268 add_action( 'init', function () {
269 Merchant_Modules::create_module( new Merchant_Side_Cart() );
270 } );
271