Changeset 3442611
- Timestamp:
- 01/19/2026 02:24:17 PM (2 months ago)
- Location:
- coming-soon-products-for-woocommerce/trunk
- Files:
-
- 14 added
- 15 edited
-
assets/dist/js/front (added)
-
assets/src (added)
-
assets/src/css (added)
-
assets/src/css/flipdown.scss (added)
-
assets/src/css/settings-styles.scss (added)
-
assets/src/images (added)
-
assets/src/images/ok.png (added)
-
assets/src/js (added)
-
assets/src/js/flipdown.js (added)
-
assets/src/js/front-single-product-actions.js (added)
-
assets/src/js/settings-actions.js (added)
-
assets/src/js/single-product-actions.js (added)
-
composer.json (added)
-
core/core.php (modified) (31 diffs)
-
gpls-wcsamm-woo-coming-soon-products-for-woocommerce.php (modified) (7 diffs)
-
includes/class-coming-soon-backend.php (modified) (27 diffs)
-
includes/class-coming-soon-badge.php (modified) (4 diffs)
-
includes/class-coming-soon-frontend.php (modified) (13 diffs)
-
includes/class-coming-soon-quick-bulk-edits.php (modified) (15 diffs)
-
includes/class-coming-soon-shortcode.php (modified) (1 diff)
-
includes/class-coming-soon.php (modified) (3 diffs)
-
includes/settings.php (modified) (27 diffs)
-
languages/coming-soon-products-for-woocommerce.pot (added)
-
readme.txt (modified) (1 diff)
-
templates/settings/badge-settings.php (modified) (12 diffs)
-
templates/settings/countdown-settings.php (modified) (20 diffs)
-
templates/settings/email-settings.php (modified) (2 diffs)
-
templates/settings/general-settings.php (modified) (3 diffs)
-
templates/settings/subscribe-settings.php (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
coming-soon-products-for-woocommerce/trunk/core/core.php
r3211482 r3442611 86 86 'desc' => 'Limit WooCommerce sale prices by specific quantities! Woo Limited Offers lets you set sales like Amazon with claimed percentage tracking......', 87 87 'thumbnail' => 'woo-limited-offer.webp', 88 'pro_link' => 'https://grandplugins.com/product/woo-limited-offer/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],88 'pro_link' => 'https://grandplugins.com/product/woo-limited-offer/', 89 89 ), 90 90 'woo-order-uploader' => array( … … 92 92 'desc' => 'Enhance customer experience with Order Uploader for WooCommerce. Upload, manage, and share files seamlessly between customers and store admins......', 93 93 'thumbnail' => 'woo-order-uploader.webp', 94 'pro_link' => 'https://grandplugins.com/product/woo-order-uploader/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],94 'pro_link' => 'https://grandplugins.com/product/woo-order-uploader/', 95 95 ), 96 96 'woo-name-your-price' => array( … … 98 98 'desc' => 'Empower your website with Woo Name Your Price. Let shoppers set their own prices for your WooCommerce products, boosting engagement and sales flexibility......', 99 99 'thumbnail' => 'woo-name-your-price.webp', 100 'pro_link' => 'https://grandplugins.com/product/woo-name-your-price/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],100 'pro_link' => 'https://grandplugins.com/product/woo-name-your-price/', 101 101 ), 102 102 'woo-order-splitter' => array( … … 104 104 'desc' => 'Divides an order into orders based on categories, weight, dimensions, and shipping classes......', 105 105 'thumbnail' => 'woo-order-splitter.webp', 106 'pro_link' => 'https://grandplugins.com/product/woo-order-splitter/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],106 'pro_link' => 'https://grandplugins.com/product/woo-order-splitter/', 107 107 ), 108 108 'wp-db-controller' => array( … … 110 110 'desc' => 'Manage your WordPress database with ease. List tables, edit rows, delete rows, empty tables, rename tables, and export data all from your website dashboard......', 111 111 'thumbnail' => 'wp-db-controller.webp', 112 'pro_link' => 'https://grandplugins.com/product/wp-db-controller/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],112 'pro_link' => 'https://grandplugins.com/product/wp-db-controller/', 113 113 ), 114 114 'woo-paddle-checkout' => array( … … 116 116 'desc' => 'Integrates Paddle\'s secure payment gateway into your WooCommerce website allowing customers to make secure and hassle-free payments and subscriptions through Paddle for their orders.....', 117 117 'thumbnail' => 'woo-paddle-checkout.webp', 118 'pro_link' => 'https://grandplugins.com/product/woo-paddle-checkout/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],118 'pro_link' => 'https://grandplugins.com/product/woo-paddle-checkout/', 119 119 ), 120 120 'woo-sales-notifications' => array( … … 122 122 'desc' => 'boost your e-commerce store\'s sales and build customer trust. displaying real-time, eye-catching sales notifications on your website, notifying potential customers of recent product purchases..', 123 123 'thumbnail' => 'woo-sales-popup.webp', 124 'pro_link' => 'https://grandplugins.com/product/woo-sales-notification/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],124 'pro_link' => 'https://grandplugins.com/product/woo-sales-notification/', 125 125 ), 126 126 'woo-best-sellers' => array( … … 129 129 'thumbnail' => 'woo-best-seller-thumbnail.png', 130 130 'free_link' => 'https://wordpress.org/plugins/best-seller-for-woocommerce/', 131 'pro_link' => 'https://grandplugins.com/product/woo-best-seller/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],131 'pro_link' => 'https://grandplugins.com/product/woo-best-seller/', 132 132 ), 133 133 'advanced-captcha' => array( … … 135 135 'desc' => 'protect your website from spammers and bots using multiple and random captchas...', 136 136 'thumbnail' => 'advanced-captcha.webp', 137 'pro_link' => 'https://grandplugins.com/product/woo-advanced-captcha/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],137 'pro_link' => 'https://grandplugins.com/product/woo-advanced-captcha/', 138 138 ), 139 139 'woo-advanced-add-to-cart' => array( … … 141 141 'desc' => 'Add To cart in bulk, custom prices and more...', 142 142 'thumbnail' => 'woo-advanced-add-to-cart.webp', 143 'pro_link' => 'https://grandplugins.com/product/woo-advanced-add-to-cart/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],143 'pro_link' => 'https://grandplugins.com/product/woo-advanced-add-to-cart/', 144 144 ), 145 145 'woo-advanced-pricing' => array( … … 147 147 'desc' => 'Apply all types of Quantity based pricing models', 148 148 'thumbnail' => 'woo-advanced-pricing.webp', 149 'pro_link' => 'https://grandplugins.com/product/woo-advanced-pricing/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],149 'pro_link' => 'https://grandplugins.com/product/woo-advanced-pricing/', 150 150 ), 151 151 'woo-maintenance-mode' => array( … … 154 154 'thumbnail' => 'woo-maintenance-mode.png', 155 155 'free_link' => 'https://wordpress.org/plugins/ultimate-maintenance-mode-for-woocommerce/', 156 'pro_link' => 'https://grandplugins.com/product/woocommerce-maintenance-mode-pro/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],156 'pro_link' => 'https://grandplugins.com/product/woocommerce-maintenance-mode-pro/', 157 157 ), 158 158 'woo-quick-view' => array( … … 161 161 'thumbnail' => 'woo-quick-view-and-buy-now.png', 162 162 'free_link' => 'https://wordpress.org/plugins/quick-view-and-buy-now-for-woocommerce/', 163 'pro_link' => 'https://grandplugins.com/product/quick-view-and-buy-now-for-woocommerce/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],163 'pro_link' => 'https://grandplugins.com/product/quick-view-and-buy-now-for-woocommerce/', 164 164 ), 165 165 'woo-cart-limiter' => array( … … 168 168 'thumbnail' => 'woo-cart-limiter.jpg', 169 169 'free_link' => 'https://wordpress.org/plugins/cart-limiter/', 170 'pro_link' => 'https://grandplugins.com/product/woo-cart-limiter/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],170 'pro_link' => 'https://grandplugins.com/product/woo-cart-limiter/', 171 171 ), 172 172 'simple-countdown-timer' => array( … … 175 175 'thumbnail' => 'simple-countdown-timer.gif', 176 176 'free_link' => 'https://wordpress.org/plugins/simple-countdown/', 177 'pro_link' => 'https://grandplugins.com/product/simple-countdown-timer/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],177 'pro_link' => 'https://grandplugins.com/product/simple-countdown-timer/', 178 178 ), 179 179 'wp-watermark-pdf' => array( … … 182 182 'thumbnail' => 'wp-watermark-pdf.png', 183 183 'free_link' => 'https://wordpress.org/plugins/watermark-pdf/', 184 'pro_link' => 'https://grandplugins.com/product/wp-watermark-pdf/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],184 'pro_link' => 'https://grandplugins.com/product/wp-watermark-pdf/', 185 185 ), 186 186 … … 190 190 'thumbnail' => 'image-sizes-controller.png', 191 191 'free_link' => 'https://wordpress.org/plugins/image-sizes-controller/', 192 'pro_link' => 'https://grandplugins.com/product/image-sizes-controller/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],192 'pro_link' => 'https://grandplugins.com/product/image-sizes-controller/', 193 193 ), 194 194 'wp-watermark-images' => array( … … 197 197 'thumbnail' => 'wp-watermark-images.png', 198 198 'free_link' => 'https://wordpress.org/plugins/watermark-images-for-wp-and-woo-grandpluginswp/', 199 'pro_link' => 'https://grandplugins.com/product/wp-images-watermark/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],199 'pro_link' => 'https://grandplugins.com/product/wp-images-watermark/', 200 200 ), 201 201 … … 205 205 'thumbnail' => 'wp-gif-editor.gif', 206 206 'free_link' => 'https://wordpress.org/plugins/gif-uploader-wp-grandplugins', 207 'pro_link' => 'https://grandplugins.com/product/wp-gif-editor/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],207 'pro_link' => 'https://grandplugins.com/product/wp-gif-editor/', 208 208 ), 209 209 ); … … 228 228 public function premium_link( $links ) { 229 229 if ( ! empty( $this->plugin_info['pro_link'] ) ) { 230 $links[] = '<a target="_blank" href="' . esc_url_raw( $this->plugin_info['pro_link'] ) . '" ><b style="color:#59c767;font-weight:bolder;">' . esc_html__( 'Pro version' ) . '</b></a>';230 $links[] = '<a target="_blank" href="' . esc_url_raw( $this->plugin_info['pro_link'] ) . '" ><b style="color:#59c767;font-weight:bolder;">' . esc_html__( 'Pro version', 'coming-soon-products-for-woocommerce' ) . '</b></a>'; 231 231 } 232 232 return $links; … … 280 280 public function plugin_activated() { 281 281 282 do_action( $this->plugin_info['name'] . '-core-activated', $this ); 282 do_action( $this->plugin_info['name'] . '-core-activated', $this ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound 283 283 } 284 284 … … 290 290 public function plugin_deactivated() { 291 291 292 do_action( $this->plugin_info['name'] . '-core-deactivated', $this ); 292 do_action( $this->plugin_info['name'] . '-core-deactivated', $this ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound 293 293 } 294 294 … … 300 300 public function plugin_uninstalled() { 301 301 302 do_action( $this->plugin_info['name'] . '-core-uninstalled', $this ); 302 do_action( $this->plugin_info['name'] . '-core-uninstalled', $this ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound 303 303 } 304 304 … … 323 323 ?> 324 324 <a target="_blank" class="ms-2 btn gpls-permium-btn-wave btn-primary <?php echo esc_attr( $additional_classes ); ?>" href="<?php echo esc_url_raw( $pro_link ); ?>"> 325 <span class="pro-title" style="position:relative;z-index:10;color:#FFF;"><?php printf( esc_html__( '%s' ),$btn_title ); ?></span>325 <span class="pro-title" style="position:relative;z-index:10;color:#FFF;"><?php echo esc_html( $btn_title ); ?></span> 326 326 <span class="wave"></span> 327 327 </a> … … 352 352 </style> 353 353 <div class="gpls-contact"> 354 <p class="p-3 bg-light text-center text text-white"><?php esc_html_e( 'in case you want to report a bug, submit a new feature or request a custom plugin, Please' ); ?> <a class="link" target="_blank" href="https://grandplugins.com/contact-us"> <?php esc_html_e( 'contact us' ); ?></a></p>354 <p class="p-3 bg-light text-center text text-white"><?php esc_html_e( 'in case you want to report a bug, submit a new feature or request a custom plugin, Please', 'coming-soon-products-for-woocommerce' ); ?> <a class="link" target="_blank" href="https://grandplugins.com/contact-us"> <?php esc_html_e( 'contact us', 'coming-soon-products-for-woocommerce' ); ?></a></p> 355 355 </div> 356 356 <?php … … 370 370 ?> 371 371 <p style="min-width:650px;" class="mx-auto d-inline-block notice notice-success <?php echo esc_attr( $small ? 'p-2' : 'p-4' ); ?> <?php echo esc_attr( $is_dismissible ? 'is-dismissible' : '' ); ?>"> 372 <?php esc_html_e( 'We would love your feedback. leaving ' ); ?>372 <?php esc_html_e( 'We would love your feedback. leaving ', 'coming-soon-products-for-woocommerce' ); ?> 373 373 <a class="text-decoration-none" href="<?php echo esc_url_raw( $review_link ); ?>" target="_blank"> 374 <u><?php esc_html_e( 'a review is much appreciated' ); ?></u>374 <u><?php esc_html_e( 'a review is much appreciated', 'coming-soon-products-for-woocommerce' ); ?></u> 375 375 <span class="dashicons dashicons-star-filled"></span> 376 376 <span class="dashicons dashicons-star-filled"></span> … … 379 379 <span class="dashicons dashicons-star-filled"></span> 380 380 </a> 381 <?php esc_html_e( ':) Thanks!' ); ?>381 <?php esc_html_e( ':) Thanks!', 'coming-soon-products-for-woocommerce' ); ?> 382 382 </p> 383 383 <?php … … 397 397 } 398 398 ?> 399 <span class="<?php echo esc_attr( $this->plugin_info['classes_general'] . '-new-keyword' ); ?> ms-1"><?php esc_html_e( 'New' ); ?></span>399 <span class="<?php echo esc_attr( $this->plugin_info['classes_general'] . '-new-keyword' ); ?> ms-1"><?php esc_html_e( 'New', 'coming-soon-products-for-woocommerce' ); ?></span> 400 400 <?php 401 401 if ( $return ) { … … 412 412 ?> 413 413 <div class="gpls-core-recommended-section my-5"> 414 <h6 class="shadow-sm border p-3 shadow-sm border rounded"><?php esc_html_e( 'Empower Your Website with Our Additional Plugins' ); ?></h6>414 <h6 class="shadow-sm border p-3 shadow-sm border rounded"><?php esc_html_e( 'Empower Your Website with Our Additional Plugins', 'coming-soon-products-for-woocommerce' ); ?></h6> 415 415 <div class="section-body bg-light p-3 shadow-sm border rounded"> 416 416 <ul class="plugins-list list-group"> … … 430 430 <?php if ( ! empty( $plugin_arr['pro_link'] ) ) : ?> 431 431 <div class="col d-flex justify-content-center border-end"> 432 <a class="btn btn-primary text-decoration-underline" target="_blank" href="<?php echo esc_url_raw( $plugin_arr['pro_link'] ); ?>"><strong><?php esc_html_e( 'Pro' ); ?></strong></a>432 <a class="btn btn-primary text-decoration-underline" target="_blank" href="<?php echo esc_url_raw( $plugin_arr['pro_link'] ); ?>"><strong><?php esc_html_e( 'Pro', 'coming-soon-products-for-woocommerce' ); ?></strong></a> 433 433 </div> 434 434 <?php endif; ?> 435 435 <?php if ( ! empty( $plugin_arr['free_link'] ) ) : ?> 436 436 <div class="col d-flex justify-content-center"> 437 <a class="btn btn-success text-decoration-underline" target="_blank" href="<?php echo esc_url_raw( $plugin_arr['free_link'] ); ?>"><?php esc_html_e( 'Free' ); ?></a>437 <a class="btn btn-success text-decoration-underline" target="_blank" href="<?php echo esc_url_raw( $plugin_arr['free_link'] ); ?>"><?php esc_html_e( 'Free', 'coming-soon-products-for-woocommerce' ); ?></a> 438 438 </div> 439 439 <?php endif; ?> … … 442 442 <?php endforeach; ?> 443 443 </ul> 444 <a class="btn btn-primary d-block mt-3" target="_blank" href="https://grandplugins.com/product-category/plugin/ ?utm_source=free&utm_medium=sidebar&utm_content=<?php echo esc_attr( $this->plugin_info['name'] ); ?>"><?php esc_html_e( 'Browse All Plugins' ); ?></a>444 <a class="btn btn-primary d-block mt-3" target="_blank" href="https://grandplugins.com/product-category/plugin/"><?php esc_html_e( 'Browse All Plugins', 'coming-soon-products-for-woocommerce' ); ?></a> 445 445 </div> 446 446 </div> -
coming-soon-products-for-woocommerce/trunk/gpls-wcsamm-woo-coming-soon-products-for-woocommerce.php
r3428127 r3442611 7 7 * Author: GrandPlugins 8 8 * Author URI: https://grandplugins.com 9 * Text Domain: gpls-wcsamm-coming-soon-for-woocommerce9 * Text Domain: coming-soon-products-for-woocommerce 10 10 * Std Name: gpls-wcsamm-coming-soon-for-woocommerce 11 * Version: 1.2. 411 * Version: 1.2.5 12 12 * Tested up to: 6.9 13 13 * Requires at least: 5.6 14 14 * Requires PHP: 7.0.0 15 * @package WooCommerce_Coming_Soon_Products 15 * License: GPLv2 16 * License URI: https://www.gnu.org/licenses/gpl-2.0.html 17 * @package WooCommerce_Coming_Soon_Products 16 18 */ 17 19 … … 101 103 if ( ! is_plugin_active( 'woocommerce/woocommerce.php' ) ) { 102 104 deactivate_plugins( self::$plugin_info['basename'] ); 103 wp_die( esc_html__( 'WooCommerce plugin is required in order to activate the plugin', ' gpls-wcsamm-coming-soon-for-woocommerce' ) );105 wp_die( esc_html__( 'WooCommerce plugin is required in order to activate the plugin', 'coming-soon-products-for-woocommerce' ) ); 104 106 } 105 107 self::disable_duplicate(); … … 111 113 private function __construct() { 112 114 self::setup_plugin_info(); 113 $this->load_languages();114 115 self::includes(); 115 116 $this->load(); … … 147 148 */ 148 149 public function define( $key, $value ) { 149 if ( ! defined( $key ) ) { 150 define( $key, $value ); 150 if ( ! defined( $key ) ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.VariableConstantNameFound 151 define( $key, $value ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.VariableConstantNameFound 151 152 } 152 153 } … … 155 156 * Set Plugin Info 156 157 * 157 * @return array158 * @return mixed 158 159 */ 159 160 public static function setup_plugin_info() { … … 190 191 'quick_view_and_buy_now' => 'gpls-arcw-quick-view-buy-now-for-woocommerce', 191 192 ), 192 'pro_link' => 'https://grandplugins.com/product/woo-coming-soon-products/ ?utm_source=free&utm_medium=btn&utm_content=' . $plugin_data['SName'],193 'pro_link' => 'https://grandplugins.com/product/woo-coming-soon-products/', 193 194 'review_link' => 'https://wordpress.org/support/plugin/coming-soon-products-for-woocommerce/reviews/#new-post', 194 195 'duplicate_base' => 'gpls-wcsamm-coming-soon-products-for-woocommerce/gpls-wcsamm-woo-coming-soon-products-for-woocommerce.php', … … 218 219 } 219 220 220 /**221 * Load languages Folder.222 *223 * @return void224 */225 public function load_languages() {226 load_plugin_textdomain( self::$plugin_info['text_domain'], false, self::$plugin_info['path'] . 'languages/' );227 }228 229 221 } 230 222 -
coming-soon-products-for-woocommerce/trunk/includes/class-coming-soon-backend.php
r2977027 r3442611 9 9 namespace GPLSCore\GPLS_PLUGIN_WCSAMM; 10 10 11 defined( 'ABSPATH' ) || exit; 12 11 13 use GPLSCore\GPLS_PLUGIN_WCSAMM\Settings; 12 14 use GPLSCore\GPLS_PLUGIN_WCSAMM\ComingSoon; … … 28 30 * 29 31 * @param object $core 30 * @param array $plugin_info32 * @param array $plugin_info 31 33 * @return self 32 34 */ … … 86 88 ?> 87 89 <div style="clear:both;margin:5px 0px;padding:5px;border-radius:10px;background-color:#ffd767;text-align:center;color:#fff;font-weight:bolder;"> 88 <span><?php esc_html_e( 'Coming Soon', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>90 <span><?php esc_html_e( 'Coming Soon', 'coming-soon-products-for-woocommerce' ); ?></span> 89 91 </div> 90 92 <?php … … 97 99 * Variation Coming Soon. 98 100 * 99 * @param boolean $loop100 * @param array $variation_data101 * @param boolean $loop 102 * @param array $variation_data 101 103 * @param \WC_Product $variation 102 104 * @return void … … 107 109 <h3> 108 110 <div class="handlediv"></div> 109 <div style="color:#FFF;" class="attribute_name"><?php e cho esc_html( 'Variation Coming Soon', 'gpls-wcsamm-coming-soon-for-woocommerce' ) . self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product d-gpls-premium-btn-wave-product-shortcode', '', true ); ?></div>111 <div style="color:#FFF;" class="attribute_name"><?php esc_html_e( 'Variation Coming Soon', 'coming-soon-products-for-woocommerce' ) . self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product d-gpls-premium-btn-wave-product-shortcode', '', true ); ?></div> 110 112 </h3> 111 113 </div> … … 176 178 public function coming_soon_tab_in_single_product( $tabs ) { 177 179 $tabs[ self::$plugin_info['name'] . '-coming-soon-settings-tab' ] = array( 178 'label' => esc_html__( 'Coming Soon [GrandPlugins]', ' gpls-wcsamm-coming-soon-for-woocommerce' ),180 'label' => esc_html__( 'Coming Soon [GrandPlugins]', 'coming-soon-products-for-woocommerce' ), 179 181 'target' => self::$plugin_info['name'] . '-coming-soon-settings-tab', 180 182 'class' => array(), … … 206 208 'id' => self::$plugin_info['name'] . '-coming-soon-status', 207 209 'value' => $coming_soon_settings['status'], 208 'label' => esc_html__( 'Coming Soon Mode', ' gpls-wcsamm-coming-soon-for-woocommerce' ),209 'description' => esc_html__( 'Enable coming soon mode', ' gpls-wcsamm-coming-soon-for-woocommerce' ),210 'label' => esc_html__( 'Coming Soon Mode', 'coming-soon-products-for-woocommerce' ), 211 'description' => esc_html__( 'Enable coming soon mode', 'coming-soon-products-for-woocommerce' ), 210 212 ) 211 213 ); … … 214 216 'id' => self::$plugin_info['name'] . '-coming-soon-text', 215 217 'value' => $coming_soon_settings['coming_soon_text'], 216 'label' => esc_html__( 'Coming Soon Text', ' gpls-wcsamm-coming-soon-for-woocommerce' ),218 'label' => esc_html__( 'Coming Soon Text', 'coming-soon-products-for-woocommerce' ), 217 219 'class' => self::$plugin_info['name'] . '-texteditor', 218 'description' => esc_html__( 'It will be shown in single product page after product short description', ' gpls-wcsamm-coming-soon-for-woocommerce' ) . '<br/><br/>' .219 '<span class="' . esc_attr( self::$plugin_info['classes_prefix'] . '-pro-shortcode-field' ) . '" >' . esc_html__( 'Shortcode: ', ' gpls-wcsamm-coming-soon-for-woocommerce' ) . ' [' . self::$plugin_info['classes_prefix'] . '-coming-soon-text]'220 'description' => esc_html__( 'It will be shown in single product page after product short description', 'coming-soon-products-for-woocommerce' ) . '<br/><br/>' . 221 '<span class="' . esc_attr( self::$plugin_info['classes_prefix'] . '-pro-shortcode-field' ) . '" >' . esc_html__( 'Shortcode: ', 'coming-soon-products-for-woocommerce' ) . ' [' . self::$plugin_info['classes_prefix'] . '-coming-soon-text]' 220 222 . self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product d-gpls-premium-btn-wave-product-shortcode', '', true ) . '</span>', 221 223 ) … … 226 228 'id' => self::$plugin_info['name'] . '-keep-purchasable', 227 229 'value' => $coming_soon_settings['keep_purchasable'], 228 'label' => esc_html__( 'Keep it Purchasable ?', ' gpls-wcsamm-coming-soon-for-woocommerce' ) . '<span>' . self::$core->new_keyword( 'New', true ) . '</span>',229 'description' => esc_html__( 'Keep the product purchasable in coming soon mode.', ' gpls-wcsamm-coming-soon-for-woocommerce' ),230 'label' => esc_html__( 'Keep it Purchasable ?', 'coming-soon-products-for-woocommerce' ) . '<span>' . self::$core->new_keyword( 'New', true ) . '</span>', 231 'description' => esc_html__( 'Keep the product purchasable in coming soon mode.', 'coming-soon-products-for-woocommerce' ), 230 232 ) 231 233 ); … … 236 238 'type' => 'datetime-local', 237 239 'value' => $coming_soon_settings['arrival_time'], 238 'label' => esc_html__( 'Arrival Time', ' gpls-wcsamm-coming-soon-for-woocommerce' ),239 'description' => esc_html__( 'Remaining time until arrival is calculated based on the site\'s timezone', ' gpls-wcsamm-coming-soon-for-woocommerce' ),240 'label' => esc_html__( 'Arrival Time', 'coming-soon-products-for-woocommerce' ), 241 'description' => esc_html__( 'Remaining time until arrival is calculated based on the site\'s timezone', 'coming-soon-products-for-woocommerce' ), 240 242 'desc_tip' => true, 241 243 ) … … 245 247 'id' => self::$plugin_info['name'] . '-show-countdown', 246 248 'value' => $coming_soon_settings['show_countdown'], 247 'label' => esc_html__( 'Show Countdown', ' gpls-wcsamm-coming-soon-for-woocommerce' ),248 'description' => esc_html__( 'Show the arrival time countdown', ' gpls-wcsamm-coming-soon-for-woocommerce' ) . ' <br/><br/>' .249 '<span class="' . esc_attr( self::$plugin_info['classes_prefix'] . '-pro-shortcode-field' ) . '" >' . esc_html__( 'Countdown Shortcode ', ' gpls-wcsamm-coming-soon-for-woocommerce' ) . ': [' . self::$plugin_info['classes_prefix'] . '-coming-soon-countdown]'249 'label' => esc_html__( 'Show Countdown', 'coming-soon-products-for-woocommerce' ), 250 'description' => esc_html__( 'Show the arrival time countdown', 'coming-soon-products-for-woocommerce' ) . ' <br/><br/>' . 251 '<span class="' . esc_attr( self::$plugin_info['classes_prefix'] . '-pro-shortcode-field' ) . '" >' . esc_html__( 'Countdown Shortcode ', 'coming-soon-products-for-woocommerce' ) . ': [' . self::$plugin_info['classes_prefix'] . '-coming-soon-countdown]' 250 252 . self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product d-gpls-premium-btn-wave-product-shortcode', '', true ) . '</span>', 251 253 ) 252 254 ); 253 ?>255 ?> 254 256 <p class="<?php echo esc_attr( self::$plugin_info['classes_prefix'] . '-pro-shortcode-field' ); ?> form-field <?php echo esc_attr( self::$plugin_info['name'] . '-hide-countdown-divisions' ); ?>"> 255 <label><?php esc_html_e( 'Countdown Divisions', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></label>257 <label><?php esc_html_e( 'Countdown Divisions', 'coming-soon-products-for-woocommerce' ); ?></label> 256 258 <span style="display:block;"> 257 <span><?php esc_html_e( 'Hide Seconds', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>259 <span><?php esc_html_e( 'Hide Seconds', 'coming-soon-products-for-woocommerce' ); ?></span> 258 260 <input disabled style="margin-right:7px !important;" class="checkbox" type="checkbox" id="<?php echo esc_attr( self::$plugin_info['name'] . '-hide-countdown-seconds' ); ?>" /> 259 261 </span> 260 262 <span style="display:block;"> 261 <span><?php esc_html_e( 'Hide Minutes', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>263 <span><?php esc_html_e( 'Hide Minutes', 'coming-soon-products-for-woocommerce' ); ?></span> 262 264 <input disabled style="margin-right:7px !important;" class="checkbox" type="checkbox" id="<?php echo esc_attr( self::$plugin_info['name'] . '-hide-countdown-minutes' ); ?>" /> 263 265 </span> 264 266 <span style="display:block;"> 265 <span><?php esc_html_e( 'Hide Hours', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>267 <span><?php esc_html_e( 'Hide Hours', 'coming-soon-products-for-woocommerce' ); ?></span> 266 268 <input disabled style="margin-right:7px !important;" class="checkbox" type="checkbox" id="<?php echo esc_attr( self::$plugin_info['name'] . '-hide-countdown-hours' ); ?>" /> 267 269 </span> 268 <span class="description"><?php esc_html_e( 'Choose to hide a time division from the arrival time countdown', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>270 <span class="description"><?php esc_html_e( 'Choose to hide a time division from the arrival time countdown', 'coming-soon-products-for-woocommerce' ); ?></span> 269 271 </p> 270 272 <?php … … 273 275 'id' => self::$plugin_info['name'] . '-hide-price', 274 276 'value' => $coming_soon_settings['hide_price'], 275 'label' => esc_html__( 'Hide Price', ' gpls-wcsamm-coming-soon-for-woocommerce' ),276 'description' => esc_html__( 'Hide the product price', ' gpls-wcsamm-coming-soon-for-woocommerce' ),277 'label' => esc_html__( 'Hide Price', 'coming-soon-products-for-woocommerce' ), 278 'description' => esc_html__( 'Hide the product price', 'coming-soon-products-for-woocommerce' ), 277 279 ) 278 280 ); … … 281 283 'id' => self::$plugin_info['name'] . '-disable-backorders', 282 284 'value' => $coming_soon_settings['disable_backorders'], 283 'label' => esc_html__( 'Disable Backorders', ' gpls-wcsamm-coming-soon-for-woocommerce' ),284 'description' => esc_html__( 'Disable purchasing the product in backorder.', ' gpls-wcsamm-coming-soon-for-woocommerce' ),285 'label' => esc_html__( 'Disable Backorders', 'coming-soon-products-for-woocommerce' ), 286 'description' => esc_html__( 'Disable purchasing the product in backorder.', 'coming-soon-products-for-woocommerce' ), 285 287 ) 286 288 ); … … 288 290 woocommerce_wp_checkbox( 289 291 array( 290 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-1',291 'wrapper_class' => self::$plugin_info['classes_prefix'] . '-pro-field',292 'class' => 'disabled',293 'custom_attributes' => array( 294 'disabled' => 'disabled', 295 ), 296 'label' => esc_html__( 'Auto Enable', 'gpls-wcsamm-coming-soon-for-woocommerce' ),297 'description' => esc_html__( 'Auto enable the product for purchase when the arrival time is over [ requires "Arrival Time" ]', 'gpls-wcsamm-coming-soon-for-woocommerce' ) . self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product', '', true ),298 ) 299 ); 300 woocommerce_wp_checkbox( 301 array( 302 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-2',303 'wrapper_class' => self::$plugin_info['classes_prefix'] . '-pro-field',304 'class' => 'disabled',305 'custom_attributes' => array( 306 'disabled' => 'disabled', 307 ), 308 'label' => esc_html__( 'Auto Email', 'gpls-wcsamm-coming-soon-for-woocommerce' ),309 'description' => esc_html__( 'Send email automatically when the product arrival time is over [ requires "Arrival Time" and "Auto Enable" ]', 'gpls-wcsamm-coming-soon-for-woocommerce' ) . self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product', '', true ),310 ) 311 ); 312 ?>292 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-1', 293 'wrapper_class' => self::$plugin_info['classes_prefix'] . '-pro-field', 294 'class' => 'disabled', 295 'custom_attributes' => array( 296 'disabled' => 'disabled', 297 ), 298 'label' => esc_html__( 'Auto Enable', 'coming-soon-products-for-woocommerce' ), 299 'description' => esc_html__( 'Auto enable the product for purchase when the arrival time is over [ requires "Arrival Time" ]', 'coming-soon-products-for-woocommerce' ) . self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product', '', true ), 300 ) 301 ); 302 woocommerce_wp_checkbox( 303 array( 304 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-2', 305 'wrapper_class' => self::$plugin_info['classes_prefix'] . '-pro-field', 306 'class' => 'disabled', 307 'custom_attributes' => array( 308 'disabled' => 'disabled', 309 ), 310 'label' => esc_html__( 'Auto Email', 'coming-soon-products-for-woocommerce' ), 311 'description' => esc_html__( 'Send email automatically when the product arrival time is over [ requires "Arrival Time" and "Auto Enable" ]', 'coming-soon-products-for-woocommerce' ) . self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product', '', true ), 312 ) 313 ); 314 ?> 313 315 <!-- Custom Badge --> 314 316 <p class="form-field gpls-wcsamm-coming-soon-for-woocommerce-custom-badge_field <?php echo esc_attr( self::$plugin_info['classes_prefix'] . '-pro-field' ); ?>"> 315 <label for="gpls-wcsamm-coming-soon-for-woocommerce-custom-badge"><?php esc_html_e( 'Custom Badge', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></label>317 <label for="gpls-wcsamm-coming-soon-for-woocommerce-custom-badge"><?php esc_html_e( 'Custom Badge', 'coming-soon-products-for-woocommerce' ); ?></label> 316 318 <span class="badge-icons-toggler"> 317 319 <input type="checkbox" class="disabled" disabled="disabled"> 318 <button class="badge-icons-toggle button-primary disabled" disabled="disabled"><?php esc_html_e( 'Available Icons', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></button>319 <span class="description"><?php esc_html_e( 'Custom coming soon badge', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span> |320 <span class="description"><?php printf( esc_html( 'Coming Soon Badge Shortcode: [%s]' ), self::$plugin_info['classes_prefix'] . '-coming-soon-badge' ); ?></span>320 <button class="badge-icons-toggle button-primary disabled" disabled="disabled"><?php esc_html_e( 'Available Icons', 'coming-soon-products-for-woocommerce' ); ?></button> 321 <span class="description"><?php esc_html_e( 'Custom coming soon badge', 'coming-soon-products-for-woocommerce' ); ?></span> | 322 <span class="description"><?php echo esc_html( 'Coming Soon Badge Shortcode: [' . self::$plugin_info['classes_prefix'] . '-coming-soon-badge]' ); ?></span> 321 323 <span class="description"><?php self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product' ); ?></span> 322 324 </span> … … 325 327 </div> 326 328 <div class="options_group <?php echo esc_attr( self::$plugin_info['classes_prefix'] . '-pro-field' ); ?>"> 327 <h3><?php echo ( esc_html( 'Pro Features' ) . self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product', '', true ) );?></h3>329 <h3><?php echo esc_html__( 'Pro Features', 'coming-soon-products-for-woocommerce' ) . self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product', '', true ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></h3> 328 330 <?php 329 331 woocommerce_wp_checkbox( 330 332 array( 331 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-3',332 'class' => 'disabled',333 'custom_attributes' => array( 334 'disabled' => 'disabled', 335 ), 336 'label' => esc_html__( 'Show Subscription', 'gpls-wcsamm-coming-soon-for-woocommerce' ),337 'description' => esc_html__( 'Display the subscription form ', 'gpls-wcsamm-coming-soon-for-woocommerce' ) . ' <br/> ' . esc_html__( 'Subscription form Shortcode ', 'gpls-wcsamm-coming-soon-for-woocommerce' ) . ': [' . self::$plugin_info['classes_prefix'] . '-subscription-form-shortcode]',338 ) 339 ); 340 woocommerce_wp_text_input( 341 array( 342 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-4',343 'class' => 'disabled',344 'custom_attributes' => array( 345 'disabled' => 'disabled', 346 ), 347 'label' => esc_html__( 'Custom Title', 'gpls-wcsamm-coming-soon-for-woocommerce' ),348 'description' => esc_html__( 'Custom Title for the Subscription Form', 'gpls-wcsamm-coming-soon-for-woocommerce' ),349 ) 350 ); 351 woocommerce_wp_text_input( 352 array( 353 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-5',354 'class' => 'disabled',355 'custom_attributes' => array( 356 'disabled' => 'disabled', 357 ), 358 'label' => esc_html__( 'Custom Form Shortcode', 'gpls-wcsamm-coming-soon-for-woocommerce' ),359 'description' => esc_html__( 'Add custom subscription form shortcode. leave it blank for using the default form', 'gpls-wcsamm-coming-soon-for-woocommerce' ),360 'desc_tip' => true,333 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-3', 334 'class' => 'disabled', 335 'custom_attributes' => array( 336 'disabled' => 'disabled', 337 ), 338 'label' => esc_html__( 'Show Subscription', 'coming-soon-products-for-woocommerce' ), 339 'description' => esc_html__( 'Display the subscription form ', 'coming-soon-products-for-woocommerce' ) . ' <br/> ' . esc_html__( 'Subscription form Shortcode ', 'coming-soon-products-for-woocommerce' ) . ': [' . self::$plugin_info['classes_prefix'] . '-subscription-form-shortcode]', 340 ) 341 ); 342 woocommerce_wp_text_input( 343 array( 344 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-4', 345 'class' => 'disabled', 346 'custom_attributes' => array( 347 'disabled' => 'disabled', 348 ), 349 'label' => esc_html__( 'Custom Title', 'coming-soon-products-for-woocommerce' ), 350 'description' => esc_html__( 'Custom Title for the Subscription Form', 'coming-soon-products-for-woocommerce' ), 351 ) 352 ); 353 woocommerce_wp_text_input( 354 array( 355 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-5', 356 'class' => 'disabled', 357 'custom_attributes' => array( 358 'disabled' => 'disabled', 359 ), 360 'label' => esc_html__( 'Custom Form Shortcode', 'coming-soon-products-for-woocommerce' ), 361 'description' => esc_html__( 'Add custom subscription form shortcode. leave it blank for using the default form', 'coming-soon-products-for-woocommerce' ), 362 'desc_tip' => true, 361 363 ) 362 364 ); … … 364 366 </div> 365 367 <div class="options_group <?php echo esc_attr( self::$plugin_info['classes_prefix'] . '-pro-field' ); ?>"> 366 <h4 class="heading-title"><?php esc_html_e( 'Coming Soon Ended Email', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h4>368 <h4 class="heading-title"><?php esc_html_e( 'Coming Soon Ended Email', 'coming-soon-products-for-woocommerce' ); ?></h4> 367 369 <?php 368 370 woocommerce_wp_text_input( … … 371 373 'disabled' => 'disabled', 372 374 ), 373 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-6',374 'class' => 'disabled',375 'label' => esc_html__( 'Email Subject', 'gpls-wcsamm-coming-soon-for-woocommerce' ),376 'description' => esc_html__( 'Custom email subject for this product, available placeholders: {site_title}, {site_url}, {site_address}, {product_title}, {product_image}, {product_stock}, {product_link_start}, {product_link_end}', 'gpls-wcsamm-coming-soon-for-woocommerce' ),377 'desc_tip' => true,378 379 ) 380 ); 381 woocommerce_wp_text_input( 382 array( 383 'custom_attributes' => array( 384 'disabled' => 'disabled', 385 ), 386 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-7',387 'class' => 'disabled',388 'label' => esc_html__( 'Email Heading', 'gpls-wcsamm-coming-soon-for-woocommerce' ),389 'description' => esc_html__( 'Custom email heading for this product, available placeholders: {site_title}, {site_url}, {site_address}, {product_title}, {product_image}, {product_stock}, {product_link_start}, {product_link_end}', 'gpls-wcsamm-coming-soon-for-woocommerce' ),390 'desc_tip' => true,375 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-6', 376 'class' => 'disabled', 377 'label' => esc_html__( 'Email Subject', 'coming-soon-products-for-woocommerce' ), 378 'description' => esc_html__( 'Custom email subject for this product, available placeholders: {site_title}, {site_url}, {site_address}, {product_title}, {product_image}, {product_stock}, {product_link_start}, {product_link_end}', 'coming-soon-products-for-woocommerce' ), 379 'desc_tip' => true, 380 381 ) 382 ); 383 woocommerce_wp_text_input( 384 array( 385 'custom_attributes' => array( 386 'disabled' => 'disabled', 387 ), 388 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-7', 389 'class' => 'disabled', 390 'label' => esc_html__( 'Email Heading', 'coming-soon-products-for-woocommerce' ), 391 'description' => esc_html__( 'Custom email heading for this product, available placeholders: {site_title}, {site_url}, {site_address}, {product_title}, {product_image}, {product_stock}, {product_link_start}, {product_link_end}', 'coming-soon-products-for-woocommerce' ), 392 'desc_tip' => true, 391 393 ) 392 394 ); … … 396 398 'disabled' => 'disabled', 397 399 ), 398 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-8',399 'label' => esc_html__( 'Email Body', 'gpls-wcsamm-coming-soon-for-woocommerce' ),400 'class' => self::$plugin_info['name'] . '-texteditor disabled',401 'rows' => 100,402 'description' => esc_html__( 'Custom email Body for this product, available placeholders: {site_title}, {site_url}, {site_address}, {product_title}, {product_image}, {product_stock}, {product_link_start}, {product_link_end}', 'gpls-wcsamm-coming-soon-for-woocommerce' ),403 'desc_tip' => true,400 'id' => self::$plugin_info['classes_prefix'] . '-pro-field-8', 401 'label' => esc_html__( 'Email Body', 'coming-soon-products-for-woocommerce' ), 402 'class' => self::$plugin_info['name'] . '-texteditor disabled', 403 'rows' => 100, 404 'description' => esc_html__( 'Custom email Body for this product, available placeholders: {site_title}, {site_url}, {site_address}, {product_title}, {product_image}, {product_stock}, {product_link_start}, {product_link_end}', 'coming-soon-products-for-woocommerce' ), 405 'desc_tip' => true, 404 406 ) 405 407 ); … … 408 410 <!-- Out of Stock Sync --> 409 411 <div class="options_group <?php echo esc_attr( self::$plugin_info['classes_prefix'] . '-pro-field' ); ?>"> 410 <h4 class="heading-title"><?php esc_html_e( 'Out of Stock - Coming Soon Sync', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?><span><?php self::$core->new_keyword( 'New', false ); ?></span></h4>412 <h4 class="heading-title"><?php esc_html_e( 'Out of Stock - Coming Soon Sync', 'coming-soon-products-for-woocommerce' ); ?><span><?php self::$core->new_keyword( 'New', false ); ?></span></h4> 411 413 <?php 412 414 woocommerce_wp_checkbox( … … 415 417 'disabled' => 'disabled', 416 418 ), 417 'class' => 'disabled',418 'id' => self::$plugin_info['name'] . '-stock-status',419 'value' => 'no',420 'label' => esc_html__( 'Enable', 'gpls-wcsamm-coming-soon-for-woocommerce' ),421 'description' => esc_html__( 'Enable coming soon mode and stock sync. When the product is out of stock, coming soon mode will be enabled automatically.', 'gpls-wcsamm-coming-soon-for-woocommerce' ),422 ) 423 ); 424 woocommerce_wp_text_input( 425 array( 426 'custom_attributes' => array( 427 'disabled' => 'disabled', 428 ), 429 'class' => 'disabled',430 'id' => self::$plugin_info['name'] . '-stock-arrival-time-days',431 'value' => 0,432 'type' => 'number',433 'label' => esc_html__( 'Arrival duration days', 'gpls-wcsamm-coming-soon-for-woocommerce' ),434 ) 435 ); 436 woocommerce_wp_text_input( 437 array( 438 'custom_attributes' => array( 439 'disabled' => 'disabled', 440 ), 441 'class' => 'disabled',442 'id' => self::$plugin_info['name'] . '-stock-arrival-time-hours',443 'value' => 0,444 'type' => 'number',445 'label' => esc_html__( 'Arrival duration hours', 'gpls-wcsamm-coming-soon-for-woocommerce' ),446 ) 447 ); 448 woocommerce_wp_text_input( 449 array( 450 'custom_attributes' => array( 451 'disabled' => 'disabled', 452 ), 453 'class' => 'disabled',454 'id' => self::$plugin_info['name'] . '-stock-arrival-time-minutes',455 'value' => 0,456 'type' => 'number',457 'label' => esc_html__( 'Arrival duration minutes', 'gpls-wcsamm-coming-soon-for-woocommerce' ),458 ) 459 ); 460 woocommerce_wp_checkbox( 461 array( 462 'custom_attributes' => array( 463 'disabled' => 'disabled', 464 ), 465 'class' => 'disabled',466 'id' => self::$plugin_info['name'] . '-stock-auto-enable',467 'value' => 'no',468 'label' => esc_html__( 'Set auto enable', 'gpls-wcsamm-coming-soon-for-woocommerce' ),469 'description' => esc_html__( 'The "Auto Enable" option above will be enabled with coming soon mode.', 'gpls-wcsamm-coming-soon-for-woocommerce' ),419 'class' => 'disabled', 420 'id' => self::$plugin_info['name'] . '-stock-status', 421 'value' => 'no', 422 'label' => esc_html__( 'Enable', 'coming-soon-products-for-woocommerce' ), 423 'description' => esc_html__( 'Enable coming soon mode and stock sync. When the product is out of stock, coming soon mode will be enabled automatically.', 'coming-soon-products-for-woocommerce' ), 424 ) 425 ); 426 woocommerce_wp_text_input( 427 array( 428 'custom_attributes' => array( 429 'disabled' => 'disabled', 430 ), 431 'class' => 'disabled', 432 'id' => self::$plugin_info['name'] . '-stock-arrival-time-days', 433 'value' => 0, 434 'type' => 'number', 435 'label' => esc_html__( 'Arrival duration days', 'coming-soon-products-for-woocommerce' ), 436 ) 437 ); 438 woocommerce_wp_text_input( 439 array( 440 'custom_attributes' => array( 441 'disabled' => 'disabled', 442 ), 443 'class' => 'disabled', 444 'id' => self::$plugin_info['name'] . '-stock-arrival-time-hours', 445 'value' => 0, 446 'type' => 'number', 447 'label' => esc_html__( 'Arrival duration hours', 'coming-soon-products-for-woocommerce' ), 448 ) 449 ); 450 woocommerce_wp_text_input( 451 array( 452 'custom_attributes' => array( 453 'disabled' => 'disabled', 454 ), 455 'class' => 'disabled', 456 'id' => self::$plugin_info['name'] . '-stock-arrival-time-minutes', 457 'value' => 0, 458 'type' => 'number', 459 'label' => esc_html__( 'Arrival duration minutes', 'coming-soon-products-for-woocommerce' ), 460 ) 461 ); 462 woocommerce_wp_checkbox( 463 array( 464 'custom_attributes' => array( 465 'disabled' => 'disabled', 466 ), 467 'class' => 'disabled', 468 'id' => self::$plugin_info['name'] . '-stock-auto-enable', 469 'value' => 'no', 470 'label' => esc_html__( 'Set auto enable', 'coming-soon-products-for-woocommerce' ), 471 'description' => esc_html__( 'The "Auto Enable" option above will be enabled with coming soon mode.', 'coming-soon-products-for-woocommerce' ), 470 472 ) 471 473 ); … … 474 476 <!-- Auto ReStock --> 475 477 <div class="options_group <?php echo esc_attr( self::$plugin_info['classes_prefix'] . '-pro-field' ); ?>"> 476 <h4 class="heading-title"><?php esc_html_e( 'Auto Restock', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?><span><?php self::$core->new_keyword( 'New', false ); ?></span></h4>478 <h4 class="heading-title"><?php esc_html_e( 'Auto Restock', 'coming-soon-products-for-woocommerce' ); ?><span><?php self::$core->new_keyword( 'New', false ); ?></span></h4> 477 479 <?php 478 480 woocommerce_wp_checkbox( … … 481 483 'disabled' => 'disabled', 482 484 ), 483 'class' => 'disabled',484 'id' => self::$plugin_info['name'] . '-restock-status',485 'value' => 'no',486 'label' => esc_html__( 'Enable', 'gpls-wcsamm-coming-soon-for-woocommerce' ),487 'description' => esc_html__( 'Enable filling the product stock automatically after coming soon arrival time passes and the product is auto enabled.', 'gpls-wcsamm-coming-soon-for-woocommerce' ),488 'disabled' => true,489 ) 490 ); 491 woocommerce_wp_text_input( 492 array( 493 'custom_attributes' => array( 494 'disabled' => 'disabled', 495 ), 496 'class' => 'disabled',497 'id' => self::$plugin_info['name'] . '-restock-qty',498 'value' => 0,499 'type' => 'number',500 'label' => esc_html__( 'Restock Quantity', 'gpls-wcsamm-coming-soon-for-woocommerce' ),501 'description' => esc_html__( 'The stock will be set with this value automatically when the product auto enabled from coming soon mode.', 'gpls-wcsamm-coming-soon-for-woocommerce' ),485 'class' => 'disabled', 486 'id' => self::$plugin_info['name'] . '-restock-status', 487 'value' => 'no', 488 'label' => esc_html__( 'Enable', 'coming-soon-products-for-woocommerce' ), 489 'description' => esc_html__( 'Enable filling the product stock automatically after coming soon arrival time passes and the product is auto enabled.', 'coming-soon-products-for-woocommerce' ), 490 'disabled' => true, 491 ) 492 ); 493 woocommerce_wp_text_input( 494 array( 495 'custom_attributes' => array( 496 'disabled' => 'disabled', 497 ), 498 'class' => 'disabled', 499 'id' => self::$plugin_info['name'] . '-restock-qty', 500 'value' => 0, 501 'type' => 'number', 502 'label' => esc_html__( 'Restock Quantity', 'coming-soon-products-for-woocommerce' ), 503 'description' => esc_html__( 'The stock will be set with this value automatically when the product auto enabled from coming soon mode.', 'coming-soon-products-for-woocommerce' ), 502 504 ) 503 505 ); 504 506 ?> 505 507 </div> 506 <?php do_action( self::$plugin_info['name'] . '-coming-soon-product-fields', $thepostid ); ?>508 <?php do_action( self::$plugin_info['name'] . '-coming-soon-product-fields', $thepostid ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound ?> 507 509 </div> 508 510 <?php … … 528 530 529 531 if ( ! empty( $_POST[ self::$plugin_info['name'] . '-coming-soon-text' ] ) ) { 530 $settings['coming_soon_text'] = wp_kses_post( $_POST[ self::$plugin_info['name'] . '-coming-soon-text' ]);532 $settings['coming_soon_text'] = wp_kses_post( wp_unslash( $_POST[ self::$plugin_info['name'] . '-coming-soon-text' ] ) ); 531 533 } else { 532 534 $settings['coming_soon_text'] = ''; … … 578 580 array( 579 581 'id' => self::$plugin_info['classes_prefix'] . '-coming-soon-products-list-admin-bar-menu', 580 'title' => esc_html__( 'Coming Soon Products [GrandPlugins]', ' gpls-wcsamm-coming-soon-for-woocommerce' ) . ' ' . '<span class="awaiting-mod count-' . esc_attr( $coming_soon_count ) . '"><span class="pending-count" aria-hidden="true">' . esc_attr( $coming_soon_count ) . '</span></span>',582 'title' => esc_html__( 'Coming Soon Products [GrandPlugins]', 'coming-soon-products-for-woocommerce' ) . ' ' . '<span class="awaiting-mod count-' . esc_attr( $coming_soon_count ) . '"><span class="pending-count" aria-hidden="true">' . esc_attr( $coming_soon_count ) . '</span></span>', 581 583 ) 582 584 ); 583 585 584 $GLOBALS[ self::$plugin_info['name'] . '-bypass-coming-soon-badge' ] = true; 586 $GLOBALS[ self::$plugin_info['name'] . '-bypass-coming-soon-badge' ] = true; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound 585 587 586 588 foreach ( $coming_soon_products as $product_id ) { … … 602 604 603 605 if ( $arrival_time ) { 604 $arrival_time = date( 'F jS, Y, g:i A', strtotime( $arrival_time ) ); 606 $arrival_time = date( 'F jS, Y, g:i A', strtotime( $arrival_time ) ); // phpcs:ignore WordPress.DateTime.RestrictedFunctions.date_date 605 607 } 606 608 $product_edit_link = get_edit_post_link( $product_id ); … … 649 651 array( 650 652 'id' => self::$plugin_info['classes_prefix'] . '-coming-soon-products-list-admin-bar-menu', 651 'title' => esc_html__( 'Coming Soon Products', ' gpls-wcsamm-coming-soon-for-woocommerce' ) . ' ' . '<span class="awaiting-mod count-' . esc_attr( $coming_soon_count ) . '"><span class="pending-count" aria-hidden="true">' . esc_attr( $coming_soon_count ) . '</span></span>',653 'title' => esc_html__( 'Coming Soon Products', 'coming-soon-products-for-woocommerce' ) . ' ' . '<span class="awaiting-mod count-' . esc_attr( $coming_soon_count ) . '"><span class="pending-count" aria-hidden="true">' . esc_attr( $coming_soon_count ) . '</span></span>', 652 654 ) 653 655 ); … … 712 714 } 713 715 } 714 715 716 } -
coming-soon-products-for-woocommerce/trunk/includes/class-coming-soon-badge.php
r3297082 r3442611 9 9 10 10 namespace GPLSCore\GPLS_PLUGIN_WCSAMM; 11 12 defined( 'ABSPATH' ) || exit; 11 13 12 14 use GPLSCore\GPLS_PLUGIN_WCSAMM\Settings; … … 268 270 ob_start(); 269 271 ?> 270 <img src="<?php echo esc_url_raw( $badge_url ); ?>" data-<?php echo esc_attr( self::$plugin_info['prefix_under'] . '_src' ); ?>="<?php echo esc_url_raw( $badge_url ); ?>" class="<?php echo esc_attr( self::$plugin_info['classes_prefix'] . '-coming-soon-badge ' . self::$plugin_info['classes_prefix'] . '-coming-soon--' . $context . '-badge' ); ?> " <?php echo ! empty( $img_classes ) ? ( esc_attr( 'data-classes' ) . '="' . esc_attr( implode( ' ', $img_classes ) ) . '"' ) : ''; ?> alt="<?php esc_html_e( 'coming soon badge', 'gpls-wcsamm-coming-soon-for-woocommerce' ); ?>">272 <img src="<?php echo esc_url_raw( $badge_url ); ?>" data-<?php echo esc_attr( self::$plugin_info['prefix_under'] . '_src' ); ?>="<?php echo esc_url_raw( $badge_url ); ?>" class="<?php echo esc_attr( self::$plugin_info['classes_prefix'] . '-coming-soon-badge ' . self::$plugin_info['classes_prefix'] . '-coming-soon--' . $context . '-badge' ); ?> " <?php echo ! empty( $img_classes ) ? ( esc_attr( 'data-classes' ) . '="' . esc_attr( implode( ' ', $img_classes ) ) . '"' ) : ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> alt="<?php esc_html_e( 'coming soon badge', 'coming-soon-products-for-woocommerce' ); ?>"> 271 273 <?php 272 $GLOBALS[ self::$plugin_info['prefix'] . '-coming-soon-badge' ] = true; 274 $GLOBALS[ self::$plugin_info['prefix'] . '-coming-soon-badge' ] = true; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound 273 275 return ob_get_clean(); 274 276 } … … 387 389 protected function mark_badged_product( $product_id, $context = 'loop' ) { 388 390 if ( ! isset( $GLOBALS[ self::$plugin_info['name'] . '-' . $context . '-badged-produts' ] ) ) { 389 $GLOBALS[ self::$plugin_info['name'] . '-' . $context . '-badged-products' ] = array(); 390 } 391 392 $GLOBALS[ self::$plugin_info['name'] . '-' . $context . '-badged-products' ][] = $product_id; 391 $GLOBALS[ self::$plugin_info['name'] . '-' . $context . '-badged-products' ] = array(); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound 392 } 393 394 $GLOBALS[ self::$plugin_info['name'] . '-' . $context . '-badged-products' ][] = $product_id; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound 393 395 } 394 396 … … 424 426 $this->mark_badged_product( $product->get_id(), 'loop' ); 425 427 426 echo $this->gpls_kses_post( $coming_soon_badge ); 428 echo $this->gpls_kses_post( $coming_soon_badge ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 427 429 } 428 430 -
coming-soon-products-for-woocommerce/trunk/includes/class-coming-soon-frontend.php
r3291373 r3442611 9 9 namespace GPLSCore\GPLS_PLUGIN_WCSAMM; 10 10 11 defined( 'ABSPATH' ) || exit; 12 11 13 use DateTime; 12 14 use GPLSCore\GPLS_PLUGIN_WCSAMM\Settings; … … 29 31 * 30 32 * @param object $core 31 * @param array $plugin_info33 * @param array $plugin_info 32 34 * @return self 33 35 */ … … 151 153 * Filter Variation is purchasable. 152 154 * 153 * @param boolean $is_purchasable155 * @param boolean $is_purchasable 154 156 * @param \WC_Product_Variation $variation 155 157 * @return boolean … … 179 181 .gpls-wcsamm-flipper{max-width:100%;}.gpls-wcsamm-flipper figure{position:absolute !important;}.gpls-wcsamm-coming-soon-badge-img-wrapper img{margin:0px !important}.product_list_widget li{position:relative}.gpls-wcsamm-coming-soon-subscribe-form .gpls-wcsamm-coming-soon-subscribe-email-field{min-width:250px}.gpls-wcsamm-coming-soon-subscribe-form .gpls-wcsamm-coming-soon-subscribe-email-field:invalid{background-color:#ff8c8c}.gpls-wcsamm-subscribe-submit-btn{padding:10px;cursor:pointer}.gpls-wcsamm-post-submit-text{display:none}.rotor-group .rotors-wrapper{width:100%;display:flex;justify-content:center}.rotor-group .rotors-wrapper .rotor{overflow:hidden;width:40%}.rotor-group .rotors-wrapper .rotor .rotor-leaf{width:100%}.rotor-group .rotors-wrapper .rotor .rotor-painter{width:100%}.rotor-group .rotors-wrapper .rotor:after{width:100%} 180 182 <?php 181 do_action( self::$plugin_info['name'] . '-frontend-inline-styles' ); 183 do_action( self::$plugin_info['name'] . '-frontend-inline-styles' ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound 182 184 Settings::get_countdown_styles( true ); 183 185 $inline_styles = ob_get_clean(); … … 198 200 wp_enqueue_script( self::$plugin_info['name'] . '-dist-single-product-actions', self::$plugin_info['url'] . 'assets/dist/js/front-single-product-actions.min.js', array( 'jquery' ), self::$plugin_info['version'], true ); 199 201 $localize_data = array( 200 'ajaxUrl' => admin_url( 'admin-ajax.php' ),201 'nonce' => wp_create_nonce( self::$plugin_info['name'] . '-nonce' ),202 'prefix' => self::$plugin_info['name'],203 'prefix_under' => self::$plugin_info['prefix_under'],204 'subSubmitAction' => self::$plugin_info['name'] . '-subscription-submit-action',205 'classes_prefix' => self::$plugin_info['classes_prefix'],206 'related_plugins' => self::$plugin_info['related_plugins'],207 'labels' => array(202 'ajaxUrl' => admin_url( 'admin-ajax.php' ), 203 'nonce' => wp_create_nonce( self::$plugin_info['name'] . '-nonce' ), 204 'prefix' => self::$plugin_info['name'], 205 'prefix_under' => self::$plugin_info['prefix_under'], 206 'subSubmitAction' => self::$plugin_info['name'] . '-subscription-submit-action', 207 'classes_prefix' => self::$plugin_info['classes_prefix'], 208 'related_plugins' => self::$plugin_info['related_plugins'], 209 'labels' => array( 208 210 'flipDownHeading' => array( 209 'days' => esc_html__( 'Days', ' gpls-wcsamm-coming-soon-for-woocommerce' ),210 'hours' => esc_html__( 'Hours', ' gpls-wcsamm-coming-soon-for-woocommerce' ),211 'minutes' => esc_html__( 'Minutes', ' gpls-wcsamm-coming-soon-for-woocommerce' ),212 'seconds' => esc_html__( 'Seconds', ' gpls-wcsamm-coming-soon-for-woocommerce' ),211 'days' => esc_html__( 'Days', 'coming-soon-products-for-woocommerce' ), 212 'hours' => esc_html__( 'Hours', 'coming-soon-products-for-woocommerce' ), 213 'minutes' => esc_html__( 'Minutes', 'coming-soon-products-for-woocommerce' ), 214 'seconds' => esc_html__( 'Seconds', 'coming-soon-products-for-woocommerce' ), 213 215 ), 214 216 ), 215 'is_single' => (int) is_product(),217 'is_single' => (int) is_product(), 216 218 ); 217 $localize_data = apply_filters( self::$plugin_info['classes_prefix'] . '-front-localize-data', $localize_data ); 219 $localize_data = apply_filters( self::$plugin_info['classes_prefix'] . '-front-localize-data', $localize_data ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound 218 220 219 221 wp_localize_script( … … 253 255 /** 254 256 * Disable Duplicated Content Hooked. 255 * 257 * 256 258 * @return void 257 259 */ 258 260 private static function disable_duplicated_content_hooked() { 259 261 if ( is_plugin_active( 'add-to-any/add-to-any.php' ) && function_exists( '\A2A_SHARE_SAVE_add_to_content' ) ) { 260 $priority = apply_filters( 'addtoany_content_priority', 98 ); 262 $priority = apply_filters( 'addtoany_content_priority', 98 ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound 261 263 remove_filter( 'the_content', 'A2A_SHARE_SAVE_add_to_content', $priority ); 262 264 } … … 268 270 /** 269 271 * Retrieve Duplicated Content Hooked. 270 * 272 * 271 273 * @return void 272 274 */ 273 275 private static function retrieve_duplicated_content_hooked() { 274 276 if ( is_plugin_active( 'add-to-any/add-to-any.php' ) && function_exists( '\A2A_SHARE_SAVE_add_to_content' ) ) { 275 $priority = apply_filters( 'addtoany_content_priority', 98 ); 277 $priority = apply_filters( 'addtoany_content_priority', 98 ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound 276 278 add_filter( 'the_content', 'A2A_SHARE_SAVE_add_to_content', $priority ); 277 279 } … … 294 296 $coming_soon_text = $settings['coming_soon_text']; 295 297 } 296 $content = apply_filters( 'the_content', $coming_soon_text ); 298 $content = apply_filters( 'the_content', $coming_soon_text ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound 297 299 $content = str_replace( ']]>', ']]>', $content ); 298 300 // phpcs:ignore WordPress.Security.EscapeOutput … … 304 306 </div> 305 307 <?php 306 $GLOBALS[ self::$plugin_info['prefix'] . '-coming-soon-text' ] = true; 308 $GLOBALS[ self::$plugin_info['prefix'] . '-coming-soon-text' ] = true; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound 307 309 } 308 310 … … 337 339 </div> 338 340 <?php 339 $GLOBALS[ self::$plugin_info['prefix'] . '-coming-soon-countdown' ] = true; 341 $GLOBALS[ self::$plugin_info['prefix'] . '-coming-soon-countdown' ] = true; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound 340 342 endif; 341 343 } … … 370 372 global $product; 371 373 } else { 372 $product = $_product; 374 $product = $_product; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound 373 375 } 374 376 if ( ! $product ) { … … 388 390 * Filter Product Price. 389 391 * 390 * @param string $price_html392 * @param string $price_html 391 393 * @param \WC_Product $_product 392 394 * @return string 393 395 */ 394 396 public function filter_product_price( $price_html, $_product ) { 395 $settings = self::get_settings( $_product->get_id() );397 $settings = self::get_settings( $_product->get_id() ); 396 398 if ( self::is_product_coming_soon( $_product->get_id() ) && ( 'yes' === $settings['hide_price'] ) ) { 397 399 return ''; … … 423 425 public function change_coming_soon_external_cart_btn_text( $add_to_cart_text, $_product ) { 424 426 if ( is_a( $_product, \WC_Product_External::class ) && self::is_product_coming_soon( $_product->get_id() ) && ! self::is_keep_product_purchasable( $_product->get_id() ) ) { 425 return esc_html__( 'Read more', ' woocommerce' );427 return esc_html__( 'Read more', 'coming-soon-products-for-woocommerce' ); 426 428 } 427 429 return $add_to_cart_text; -
coming-soon-products-for-woocommerce/trunk/includes/class-coming-soon-quick-bulk-edits.php
r3027410 r3442611 8 8 9 9 namespace GPLSCore\GPLS_PLUGIN_WCSAMM; 10 11 defined( 'ABSPATH' ) || exit; 10 12 11 13 use GPLSCore\GPLS_PLUGIN_WCSAMM\ComingSoon; … … 200 202 <fieldset id="<?php echo esc_attr( self::$plugin_info['prefix'] . '-fields-' . ( 'bulk' === $context ? 'bulk' : 'quick' ) ); ?>" class="<?php echo esc_attr( self::$plugin_info['prefix'] . '-pro-field' ); ?> inline-edit-col-left" style="margin-top:20px;"> 201 203 <div class="inline-edit-col" style="background-color:#EEE;padding:5px;"> 202 <h4 style="padding:0px 8px;"><?php esc_html_e( 'Coming Soon Mode [GrandPlugins]', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?> <?php self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product d-gpls-premium-btn-wave-product-shortcode' ); ?></h4>204 <h4 style="padding:0px 8px;"><?php esc_html_e( 'Coming Soon Mode [GrandPlugins]', 'coming-soon-products-for-woocommerce' ); ?> <?php self::$core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product d-gpls-premium-btn-wave-product-shortcode' ); ?></h4> 203 205 <!-- Enable Coming Soon Mode --> 204 206 <div class="inline-edit-group wp-clearfix" style="margin: 5px;box-shadow: 0 .125rem .25rem rgba(0,0,0,.075)!important;padding: 5px;background: #FFF;"> 205 207 <label class="alignleft"> 206 <span class="title" style="width:10em;"><?php esc_html_e( 'Coming Soon Mode', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>208 <span class="title" style="width:10em;"><?php esc_html_e( 'Coming Soon Mode', 'coming-soon-products-for-woocommerce' ); ?></span> 207 209 <?php if ( 'bulk' === $context ) : ?> 208 210 <span class="input-text-wrap" style="margin-left:10em;"> 209 211 <select disabled class="change_to change_<?php echo esc_attr( self::$plugin_info['name'] . '-coming-soon-status' ); ?>"> 210 <option value=""><?php esc_html_e( '— No change —', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>211 <option value="1"><?php esc_html_e( 'Change to:', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>212 <option value=""><?php esc_html_e( '— No change —', 'coming-soon-products-for-woocommerce' ); ?></option> 213 <option value="1"><?php esc_html_e( 'Change to:', 'coming-soon-products-for-woocommerce' ); ?></option> 212 214 </select> 213 215 </span> … … 216 218 <label class="change-input" style="<?php echo esc_attr( 'bulk' === $context ? 'display:none;' : '' ); ?>"> 217 219 <input disabled type="checkbox" class="checkbox <?php echo esc_attr( self::$plugin_info['name'] . '-coming-soon-status' ); ?>"> 218 <span><?php esc_html_e( 'Enable / Disable Coming Soon Mode', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>220 <span><?php esc_html_e( 'Enable / Disable Coming Soon Mode', 'coming-soon-products-for-woocommerce' ); ?></span> 219 221 </label> 220 222 </div> … … 222 224 <div class="inline-edit-group wp-clearfix" style="margin: 5px;box-shadow: 0 .125rem .25rem rgba(0,0,0,.075)!important;padding: 5px;background: #FFF;"> 223 225 <label class="alignleft"> 224 <span class="title" style="width:10em;"><?php esc_html_e( 'Coming Soon Text', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>226 <span class="title" style="width:10em;"><?php esc_html_e( 'Coming Soon Text', 'coming-soon-products-for-woocommerce' ); ?></span> 225 227 <?php if ( 'bulk' === $context ) : ?> 226 228 <span class="input-text-wrap" style="margin-left:10em;"> 227 229 <select disabled class="change_to change_<?php echo esc_attr( self::$plugin_info['name'] . '-coming-soon-text' ); ?>"> 228 <option value=""><?php esc_html_e( '— No change —', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>229 <option value="1"><?php esc_html_e( 'Change to:', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>230 <option value=""><?php esc_html_e( '— No change —', 'coming-soon-products-for-woocommerce' ); ?></option> 231 <option value="1"><?php esc_html_e( 'Change to:', 'coming-soon-products-for-woocommerce' ); ?></option> 230 232 </select> 231 233 </span> … … 233 235 </label> 234 236 <label class="change-input" style="<?php echo esc_attr( 'bulk' === $context ? 'display:none;width:100%;max-width:100%;clear:both;' : '' ); ?>"> 235 <textarea disabled class="<?php echo esc_attr( self::$plugin_info['name'] . '-texteditor' . ( 'bulk' === $context ? '-bulk' : '' ) ); ?>" id="<?php echo esc_attr( self::$plugin_info['name'] . '-coming-soon-text' . ( 'quick' === $context ? '-quick' : '-bulk' ) ); ?>" ><?php esc_html_e( 'Coming Soon', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></textarea>237 <textarea disabled class="<?php echo esc_attr( self::$plugin_info['name'] . '-texteditor' . ( 'bulk' === $context ? '-bulk' : '' ) ); ?>" id="<?php echo esc_attr( self::$plugin_info['name'] . '-coming-soon-text' . ( 'quick' === $context ? '-quick' : '-bulk' ) ); ?>" ><?php esc_html_e( 'Coming Soon', 'coming-soon-products-for-woocommerce' ); ?></textarea> 236 238 </label> 237 239 </div> … … 239 241 <div class="inline-edit-group wp-clearfix" style="margin: 5px;box-shadow: 0 .125rem .25rem rgba(0,0,0,.075)!important;padding: 5px;background: #FFF;"> 240 242 <label class="alignleft"> 241 <span class="title" style="width:10em;"><?php esc_html_e( 'Arrival Time', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>243 <span class="title" style="width:10em;"><?php esc_html_e( 'Arrival Time', 'coming-soon-products-for-woocommerce' ); ?></span> 242 244 <?php if ( 'bulk' === $context ) : ?> 243 245 <span class="input-text-wrap" style="margin-left:10em;"> 244 246 <select disabled class="change_to change_<?php echo esc_attr( self::$plugin_info['name'] . '-arrival-time' ); ?>"> 245 <option value=""><?php esc_html_e( '— No change —', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>246 <option value="1"><?php esc_html_e( 'Change to:', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>247 <option value=""><?php esc_html_e( '— No change —', 'coming-soon-products-for-woocommerce' ); ?></option> 248 <option value="1"><?php esc_html_e( 'Change to:', 'coming-soon-products-for-woocommerce' ); ?></option> 247 249 </select> 248 250 </span> … … 251 253 <label class="change-input" style="<?php echo esc_attr( 'bulk' === $context ? 'display:none;' : '' ); ?>"> 252 254 <input disabled type="datetime-local" value="" class="short" name="<?php echo esc_attr( self::$plugin_info['name'] . '-arrival-time' ); ?>" > 253 <span><?php esc_html_e( 'Coming Soon Arrival Time', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>255 <span><?php esc_html_e( 'Coming Soon Arrival Time', 'coming-soon-products-for-woocommerce' ); ?></span> 254 256 </label> 255 257 </div> … … 257 259 <div class="inline-edit-group wp-clearfix" style="margin: 5px;box-shadow: 0 .125rem .25rem rgba(0,0,0,.075)!important;padding: 5px;background: #FFF;"> 258 260 <label class="alignleft"> 259 <span class="title" style="width:10em;"><?php esc_html_e( 'Show Countdown', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>261 <span class="title" style="width:10em;"><?php esc_html_e( 'Show Countdown', 'coming-soon-products-for-woocommerce' ); ?></span> 260 262 <?php if ( 'bulk' === $context ) : ?> 261 263 <span class="input-text-wrap" style="margin-left:10em;"> 262 264 <select disabled class="change_to change_<?php echo esc_attr( self::$plugin_info['name'] . '-show-countdown' ); ?>"> 263 <option value=""><?php esc_html_e( '— No change —', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>264 <option value="1"><?php esc_html_e( 'Change to:', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>265 <option value=""><?php esc_html_e( '— No change —', 'coming-soon-products-for-woocommerce' ); ?></option> 266 <option value="1"><?php esc_html_e( 'Change to:', 'coming-soon-products-for-woocommerce' ); ?></option> 265 267 </select> 266 268 </span> … … 269 271 <label class="change-input" style="<?php echo esc_attr( 'bulk' === $context ? 'display:none;' : '' ); ?>"> 270 272 <input disabled type="checkbox" class="checkbox" > 271 <span><?php esc_html_e( 'Show / Hide CountDown', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>273 <span><?php esc_html_e( 'Show / Hide CountDown', 'coming-soon-products-for-woocommerce' ); ?></span> 272 274 </label> 273 275 </div> … … 275 277 <div class="inline-edit-group wp-clearfix" style="margin: 5px;box-shadow: 0 .125rem .25rem rgba(0,0,0,.075)!important;padding: 5px;background: #FFF;"> 276 278 <label class="alignleft"> 277 <span class="title" style="width:10em;"><?php esc_html_e( 'Hide Price', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>279 <span class="title" style="width:10em;"><?php esc_html_e( 'Hide Price', 'coming-soon-products-for-woocommerce' ); ?></span> 278 280 <?php if ( 'bulk' === $context ) : ?> 279 281 <span class="input-text-wrap" style="margin-left:10em;"> 280 282 <select disabled class="change_to change_<?php echo esc_attr( self::$plugin_info['name'] . '-hide-price' ); ?>"> 281 <option value=""><?php esc_html_e( '— No change —', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>282 <option value="1"><?php esc_html_e( 'Change to:', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>283 <option value=""><?php esc_html_e( '— No change —', 'coming-soon-products-for-woocommerce' ); ?></option> 284 <option value="1"><?php esc_html_e( 'Change to:', 'coming-soon-products-for-woocommerce' ); ?></option> 283 285 </select> 284 286 </span> … … 287 289 <label class="change-input" style="<?php echo esc_attr( 'bulk' === $context ? 'display:none;' : '' ); ?>"> 288 290 <input disabled type="checkbox" class="checkbox" > 289 <span><?php esc_html_e( 'Hide the product price', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>291 <span><?php esc_html_e( 'Hide the product price', 'coming-soon-products-for-woocommerce' ); ?></span> 290 292 </label> 291 293 </div> … … 293 295 <div class="inline-edit-group wp-clearfix" style="margin: 5px;box-shadow: 0 .125rem .25rem rgba(0,0,0,.075)!important;padding: 5px;background: #FFF;"> 294 296 <label class="alignleft"> 295 <span class="title" style="width:10em;"><?php esc_html_e( 'Auto Email', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>297 <span class="title" style="width:10em;"><?php esc_html_e( 'Auto Email', 'coming-soon-products-for-woocommerce' ); ?></span> 296 298 <?php if ( 'bulk' === $context ) : ?> 297 299 <span class="input-text-wrap" style="margin-left:10em;"> 298 300 <select disabled class="change_to change_<?php echo esc_attr( self::$plugin_info['name'] . '-auto-email' ); ?>"> 299 <option value=""><?php esc_html_e( '— No change —', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>300 <option value="1"><?php esc_html_e( 'Change to:', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>301 <option value=""><?php esc_html_e( '— No change —', 'coming-soon-products-for-woocommerce' ); ?></option> 302 <option value="1"><?php esc_html_e( 'Change to:', 'coming-soon-products-for-woocommerce' ); ?></option> 301 303 </select> 302 304 </span> … … 305 307 <label class="change-input" style="<?php echo esc_attr( 'bulk' === $context ? 'display:none;' : '' ); ?>"> 306 308 <input disabled type="checkbox" class="checkbox" > 307 <span><?php esc_html_e( 'Send email automatically when the product arrival time is over [ requires "Arrival Time" and "Auto Enable" ]', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>309 <span><?php esc_html_e( 'Send email automatically when the product arrival time is over [ requires "Arrival Time" and "Auto Enable" ]', 'coming-soon-products-for-woocommerce' ); ?></span> 308 310 </label> 309 311 </div> … … 311 313 <div class="inline-edit-group wp-clearfix" style="margin: 5px;box-shadow: 0 .125rem .25rem rgba(0,0,0,.075)!important;padding: 5px;background: #FFF;"> 312 314 <label class="alignleft"> 313 <span class="title" style="width:10em;"><?php esc_html_e( 'Subscription Form', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>315 <span class="title" style="width:10em;"><?php esc_html_e( 'Subscription Form', 'coming-soon-products-for-woocommerce' ); ?></span> 314 316 <?php if ( 'bulk' === $context ) : ?> 315 317 <span class="input-text-wrap" style="margin-left:10em;"> 316 318 <select disabled class="change_to change_<?php echo esc_attr( self::$plugin_info['name'] . '-show-subscription-form' ); ?>"> 317 <option value=""><?php esc_html_e( '— No change —', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>318 <option value="1"><?php esc_html_e( 'Change to:', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>319 <option value=""><?php esc_html_e( '— No change —', 'coming-soon-products-for-woocommerce' ); ?></option> 320 <option value="1"><?php esc_html_e( 'Change to:', 'coming-soon-products-for-woocommerce' ); ?></option> 319 321 </select> 320 322 </span> … … 323 325 <label class="change-input" style="<?php echo esc_attr( 'bulk' === $context ? 'display:none;' : '' ); ?>"> 324 326 <input disabled type="checkbox" class="checkbox" > 325 <span><?php esc_html_e( 'Show subscription form', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>327 <span><?php esc_html_e( 'Show subscription form', 'coming-soon-products-for-woocommerce' ); ?></span> 326 328 </label> 327 329 </div> -
coming-soon-products-for-woocommerce/trunk/includes/class-coming-soon-shortcode.php
r2878018 r3442611 8 8 9 9 namespace GPLSCore\GPLS_PLUGIN_WCSAMM; 10 11 defined( 'ABSPATH' ) || exit; 10 12 11 13 use GPLSCore\GPLS_PLUGIN_WCSAMM\Settings; -
coming-soon-products-for-woocommerce/trunk/includes/class-coming-soon.php
r3211482 r3442611 8 8 9 9 namespace GPLSCore\GPLS_PLUGIN_WCSAMM; 10 11 defined( 'ABSPATH' ) || exit; 10 12 11 13 use DateInterval; … … 83 85 'show_countdown' => 'no', 84 86 ); 85 self::$default_settings = apply_filters( self::$plugin_info['name'] . '-coming-soon-product-default-settings', self::$default_settings ); 87 self::$default_settings = apply_filters( self::$plugin_info['name'] . '-coming-soon-product-default-settings', self::$default_settings ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound 86 88 self::$custom_fields_labels_for_wpml = array( 87 self::$plugin_info['name'] . '-coming_soon_text' => esc_html__( 'Coming Soon Text', ' gpls-wcsamm-coming-soon-for-woocommerce' ),89 self::$plugin_info['name'] . '-coming_soon_text' => esc_html__( 'Coming Soon Text', 'coming-soon-products-for-woocommerce' ), 88 90 ); 89 91 } … … 326 328 element_type=%s 327 329 "; 328 $result = $wpdb->get_row( $wpdb->prepare( $query, array( $element_id, $element_type ) ), \ARRAY_A ); 330 $result = $wpdb->get_row( $wpdb->prepare( $query, array( $element_id, $element_type ) ), \ARRAY_A ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.NotPrepared 329 331 330 332 if ( ! $result || ! is_array( $result ) ) { -
coming-soon-products-for-woocommerce/trunk/includes/settings.php
r3211482 r3442611 118 118 */ 119 119 public function setup_settings() { 120 $this->settings_tab = array( self::$settings_tab_key => esc_html__( 'Coming Soon Products [GrandPlugins]', ' gpls-wcsamm-coming-soon-for-woocommerce' ) );121 $this->current_active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'general'; 120 $this->settings_tab = array( self::$settings_tab_key => esc_html__( 'Coming Soon Products [GrandPlugins]', 'coming-soon-products-for-woocommerce' ) ); 121 $this->current_active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'general'; // phpcs:ignore WordPress.Security.NonceVerification.Recommended 122 122 $this->settings_tabs = array( 123 123 array( 124 124 'key' => 'general', 125 'label' => esc_html__( 'General', ' gpls-wcsamm-coming-soon-for-woocommerce' ),125 'label' => esc_html__( 'General', 'coming-soon-products-for-woocommerce' ), 126 126 ), 127 127 array( 128 128 'key' => 'badge', 129 'label' => esc_html__( 'Badge', ' gpls-wcsamm-coming-soon-for-woocommerce' ),129 'label' => esc_html__( 'Badge', 'coming-soon-products-for-woocommerce' ), 130 130 ), 131 131 array( 132 132 'key' => 'countdown', 133 'label' => esc_html__( 'Countdown', ' gpls-wcsamm-coming-soon-for-woocommerce' ),133 'label' => esc_html__( 'Countdown', 'coming-soon-products-for-woocommerce' ), 134 134 ), 135 135 array( 136 136 'key' => 'subscribe', 137 'label' => esc_html__( 'Subscribe', ' woo-coming-soon-products' ),137 'label' => esc_html__( 'Subscribe', 'coming-soon-products-for-woocommerce' ), 138 138 ), 139 139 array( 140 140 'key' => 'email', 141 'label' => esc_html__( 'Subscribed Emails', ' woo-coming-soon-products' ),141 'label' => esc_html__( 'Subscribed Emails', 'coming-soon-products-for-woocommerce' ), 142 142 ), 143 143 ); 144 144 self::$default_settings = array( 145 145 'general' => array( 146 'coming_soon_text' => wp_kses_post( '<h3>' . esc_html__( 'Coming Soon', ' woo-coming-soon-products' ) . '</h3>' ),146 'coming_soon_text' => wp_kses_post( '<h3>' . esc_html__( 'Coming Soon', 'coming-soon-products-for-woocommerce' ) . '</h3>' ), 147 147 'single_placement_position' => 'woocommerce_single_product_summary', 148 148 'single_placement_position_priority' => 29, … … 193 193 ), 194 194 ); 195 $this->settings_tabs = apply_filters( self::$plugin_info['name'] . '-settings-tabs', $this->settings_tabs ); 196 self::$default_settings = apply_filters( self::$plugin_info['name'] . '-default-settings', self::$default_settings ); 195 $this->settings_tabs = apply_filters( self::$plugin_info['name'] . '-settings-tabs', $this->settings_tabs ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound 196 self::$default_settings = apply_filters( self::$plugin_info['name'] . '-default-settings', self::$default_settings ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound 197 197 self::$settings = self::get_settings(); 198 198 … … 211 211 */ 212 212 public function settings_link( $links ) { 213 $links[] = '<a href="' . esc_url( admin_url( 'admin.php?page=wc-settings&tab=' . self::$plugin_info['name'] ) ) . '">' . esc_html__( 'Settings' ) . '</a>';213 $links[] = '<a href="' . esc_url( admin_url( 'admin.php?page=wc-settings&tab=' . self::$plugin_info['name'] ) ) . '">' . esc_html__( 'Settings', 'coming-soon-products-for-woocommerce' ) . '</a>'; 214 214 return $links; 215 215 } … … 221 221 */ 222 222 public function add_settings_assets() { 223 if ( ! empty( $_GET['tab'] ) && in_array( sanitize_text_field( wp_unslash( $_GET['tab'] ) ), array_keys( $this->settings_tab ) ) ) {223 if ( ! empty( $_GET['tab'] ) && in_array( sanitize_text_field( wp_unslash( $_GET['tab'] ) ), array_keys( $this->settings_tab ), true ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended 224 224 if ( ! wp_style_is( 'select2' ) ) { 225 225 wp_enqueue_style( 'select2' ); … … 257 257 'uploadBadgeIconAction' => self::$plugin_info['name'] . '-upload-custom-badge-icon-action', 258 258 'labels' => array( 259 'only_images' => esc_html__( 'Only images are allowed', ' gpls-wcsamm-coming-soon-for-woocommerce' ),259 'only_images' => esc_html__( 'Only images are allowed', 'coming-soon-products-for-woocommerce' ), 260 260 'flipDownHeading' => array( 261 'days' => esc_html__( 'Days', ' gpls-wcsamm-coming-soon-for-woocommerce' ),262 'hours' => esc_html__( 'Hours', ' gpls-wcsamm-coming-soon-for-woocommerce' ),263 'minutes' => esc_html__( 'Minutes', ' gpls-wcsamm-coming-soon-for-woocommerce' ),264 'seconds' => esc_html__( 'Seconds', ' gpls-wcsamm-coming-soon-for-woocommerce' ),261 'days' => esc_html__( 'Days', 'coming-soon-products-for-woocommerce' ), 262 'hours' => esc_html__( 'Hours', 'coming-soon-products-for-woocommerce' ), 263 'minutes' => esc_html__( 'Minutes', 'coming-soon-products-for-woocommerce' ), 264 'seconds' => esc_html__( 'Seconds', 'coming-soon-products-for-woocommerce' ), 265 265 ), 266 266 ), … … 269 269 ); 270 270 271 if ( empty( $_GET['action'] ) ) { 271 if ( empty( $_GET['action'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended 272 272 wp_enqueue_media(); 273 273 wp_enqueue_editor(); … … 279 279 } 280 280 281 if ( empty( $_GET['action'] ) ) { 281 if ( empty( $_GET['action'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended 282 282 wp_enqueue_style( 'woocommerce' ); 283 283 wp_enqueue_script( 'woocommerce' ); … … 298 298 'result' => false, 299 299 'status' => 'error', 300 'message' => esc_html__( 'no file uploaded!', ' gpls-wcsamm-coming-soon-for-woocommerce' ),300 'message' => esc_html__( 'no file uploaded!', 'coming-soon-products-for-woocommerce' ), 301 301 ) 302 302 ); … … 304 304 $uploads = wp_upload_dir(); 305 305 $badges_path = trailingslashit( $uploads['basedir'] ) . trailingslashit( self::$plugin_info['name'] ); 306 $badge_file = $_FILES['file']; 306 $badge_file = $_FILES['file']; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 307 307 $badge_file_name = sanitize_text_field( wp_unslash( $badge_file['name'] ) ); 308 308 $upload_error_strings = array( … … 310 310 sprintf( 311 311 /* translators: 1: upload_max_filesize, 2: php.ini */ 312 esc_html__( 'The uploaded file exceeds the %1$s directive in %2$s.' ),312 esc_html__( 'The uploaded file exceeds the %1$s directive in %2$s.', 'coming-soon-products-for-woocommerce' ), 313 313 'upload_max_filesize', 314 314 'php.ini' … … 316 316 sprintf( 317 317 /* translators: %s: MAX_FILE_SIZE */ 318 esc_html__( 'The uploaded file exceeds the %s directive that was specified in the HTML form.' ),318 esc_html__( 'The uploaded file exceeds the %s directive that was specified in the HTML form.', 'coming-soon-products-for-woocommerce' ), 319 319 'MAX_FILE_SIZE' 320 320 ), 321 esc_html__( 'The uploaded file was only partially uploaded.' ),322 esc_html__( 'No file was uploaded.' ),321 esc_html__( 'The uploaded file was only partially uploaded.', 'coming-soon-products-for-woocommerce' ), 322 esc_html__( 'No file was uploaded.', 'coming-soon-products-for-woocommerce' ), 323 323 '', 324 esc_html__( 'Missing a temporary folder.' ),325 esc_html__( 'Failed to write file to disk.' ),326 esc_html__( 'File upload stopped by extension.' ),324 esc_html__( 'Missing a temporary folder.', 'coming-soon-products-for-woocommerce' ), 325 esc_html__( 'Failed to write file to disk.', 'coming-soon-products-for-woocommerce' ), 326 esc_html__( 'File upload stopped by extension.', 'coming-soon-products-for-woocommerce' ), 327 327 ); 328 328 … … 334 334 'result' => false, 335 335 'status' => 'error', 336 'message' => esc_html__( 'file upload is failed!', ' gpls-wcsamm-coming-soon-for-woocommerce' ),336 'message' => esc_html__( 'file upload is failed!', 'coming-soon-products-for-woocommerce' ), 337 337 ) 338 338 ); … … 345 345 'result' => false, 346 346 'status' => 'error', 347 'message' => esc_html__( 'file already exists!', ' gpls-wcsamm-coming-soon-for-woocommerce' ),347 'message' => esc_html__( 'file already exists!', 'coming-soon-products-for-woocommerce' ), 348 348 ) 349 349 ); … … 379 379 'result' => false, 380 380 'status' => 'error', 381 'message' => esc_html__( 'file is empty!', ' gpls-wcsamm-coming-soon-for-woocommerce' ),381 'message' => esc_html__( 'file is empty!', 'coming-soon-products-for-woocommerce' ), 382 382 ) 383 383 ); … … 392 392 'result' => false, 393 393 'status' => 'error', 394 'message' => esc_html__( 'file type is invalid!', ' gpls-wcsamm-coming-soon-for-woocommerce' ),394 'message' => esc_html__( 'file type is invalid!', 'coming-soon-products-for-woocommerce' ), 395 395 ) 396 396 ); … … 398 398 // == End Checks == //. 399 399 if ( ! is_dir( $badges_path ) ) { 400 @mkdir( $badges_path ); 400 @mkdir( $badges_path ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_mkdir 401 401 } 402 402 403 403 // Move the file to the plugin badges folder. 404 404 $new_badge_file = $badges_path . $badge_file_name; 405 $moved_new_file = @move_uploaded_file( $badge_file['tmp_name'], $new_badge_file ); 405 $moved_new_file = @move_uploaded_file( $badge_file['tmp_name'], $new_badge_file ); // phpcs:ignore Generic.PHP.ForbiddenFunctions.Found 406 406 407 407 if ( false === $moved_new_file ) { … … 410 410 'result' => false, 411 411 'status' => 'error', 412 'message' => sprintf( esc_html__( 'The uploaded file could not be moved to %s.', 'gpls-wcsamm-coming-soon-for-woocommerce' ), $new_badge_file ), 412 /* translators: %s New Badge File Path */ 413 'message' => sprintf( esc_html__( 'The uploaded file could not be moved to %s.', 'coming-soon-products-for-woocommerce' ), $new_badge_file ), 413 414 ) 414 415 ); … … 417 418 // Set correct file permissions. 418 419 $stat = stat( dirname( $new_badge_file ) ); 419 $perms = $stat['mode'] & 0000666; 420 chmod( $new_badge_file, $perms ); 420 $perms = $stat['mode'] & 0000666; // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_chmod 421 chmod( $new_badge_file, $perms ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_chmod 421 422 422 423 // Get all available fonts and return. … … 427 428 'status' => 'success', 428 429 'badges' => $badges, 429 'message' => esc_html__( 'Badge icons is added successfully!', ' gpls-wcsamm-coming-soon-for-woocommerce' ),430 'message' => esc_html__( 'Badge icons is added successfully!', 'coming-soon-products-for-woocommerce' ), 430 431 ) 431 432 ); … … 480 481 $classname = 'nav-tab'; 481 482 if ( 0 === $tab_index ) { 482 if ( empty( $_GET['action'] ) || ( $tab_arr['key'] === sanitize_text_field( wp_unslash( $_GET['action'] ) ) ) ) {483 if ( empty( $_GET['action'] ) || ( sanitize_text_field( wp_unslash( $_GET['action'] ) ) === $tab_arr['key'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended 483 484 $classname .= ' nav-tab-active'; 484 485 } 485 } elseif ( ! empty( $_GET['action'] ) && ( $tab_arr['key'] === sanitize_text_field( wp_unslash( $_GET['action'] ) ) ) ) {486 $classname .= ' nav-tab-active';486 } elseif ( ! empty( $_GET['action'] ) && sanitize_text_field( wp_unslash( $_GET['action'] ) ) === ( $tab_arr['key'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended 487 $classname .= ' nav-tab-active'; 487 488 } 488 489 ?> 489 <a href="<?php echo esc_url( admin_url( 'admin.php?page=wc-settings&tab=' . self::$plugin_info['name'] . ( 0 === $tab_index ? '' : '&action=' . esc_attr( $tab_arr['key'] ) ) ) ); ?>" class="<?php echo esc_attr( $classname ); ?>"><?php printf( esc_html__( '%s', 'gpls-wcsamm-coming-soon-for-woocommerce' ),$tab_arr['label'] ); ?></a>490 <a href="<?php echo esc_url( admin_url( 'admin.php?page=wc-settings&tab=' . self::$plugin_info['name'] . ( 0 === $tab_index ? '' : '&action=' . esc_attr( $tab_arr['key'] ) ) ) ); ?>" class="<?php echo esc_attr( $classname ); ?>"><?php echo esc_html( $tab_arr['label'] ); ?></a> 490 491 <?php endforeach; ?> 491 492 </nav> … … 528 529 */ 529 530 public function settings_tab_action() { 530 if ( ! empty( $_GET['action'] ) ) { 531 $action = sanitize_text_field( wp_unslash( $_GET['action'] ) ); 531 if ( ! empty( $_GET['action'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended 532 $action = sanitize_text_field( wp_unslash( $_GET['action'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended 532 533 $method_name = $action . '_tab'; 533 if ( in_array( $action, array_column( $this->settings_tabs, 'key' ) ) && method_exists( __CLASS__, $method_name ) ) { 534 if ( in_array( $action, array_column( $this->settings_tabs, 'key' ) ) && method_exists( __CLASS__, $method_name ) ) { 534 535 $this->{$method_name}(); 535 536 } 536 537 } else { 537 538 $this->general_tab(); 538 } 539 do_action( self::$plugin_info['name'] . '-main-settings-tabs-action', self::$plugin_info, self::$settings ); 539 } // 540 do_action( self::$plugin_info['name'] . '-main-settings-tabs-action', self::$plugin_info, self::$settings ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound 540 541 } 541 542 … … 587 588 $plugin_info = self::$plugin_info; 588 589 $core = self::$core; 589 $GLOBALS['hide_save_button'] = true; 590 $GLOBALS['hide_save_button'] = true; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound 590 591 require_once self::$plugin_info['path'] . 'templates/settings/subscribe-settings.php'; 591 592 } … … 599 600 $plugin_info = self::$plugin_info; 600 601 $core = self::$core; 601 $GLOBALS['hide_save_button'] = true; 602 $GLOBALS['hide_save_button'] = true; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound 602 603 require_once self::$plugin_info['path'] . 'templates/settings/email-settings.php'; 603 604 } … … 660 661 if ( $product->get_image_id() ) { 661 662 $gallery_thumbnail = wc_get_image_size( 'woocommerce_single' ); 662 $thumbnail_size = apply_filters( 'woocommerce_gallery_thumbnail_size', array( $gallery_thumbnail['width'], $gallery_thumbnail['height'] ) ); 663 $thumbnail_size = apply_filters( 'woocommerce_gallery_thumbnail_size', array( $gallery_thumbnail['width'], $gallery_thumbnail['height'] ) ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound 663 664 if ( empty( $thumbnail_size[1] ) ) { 664 665 $thumbnail_size[1] = 0; … … 760 761 $default_settings = self::$settings; 761 762 foreach ( $this->settings_tabs as $tab_arr ) { 762 if ( ! empty( $_POST[ self::$plugin_info['name'] . '-' . $tab_arr['key'] . '-settings-nonce' ] ) && wp_verify_nonce( wp_unslash( $_POST[ self::$plugin_info['name'] . '-' . $tab_arr['key'] . '-settings-nonce' ] ), self::$plugin_info['name'] . '-' . $tab_arr['key'] . '-settings-nonce' ) ) { 763 if ( ! empty( $_POST[ self::$plugin_info['name'] . '-' . $tab_arr['key'] . '-settings-nonce' ] ) && wp_verify_nonce( wp_unslash( $_POST[ self::$plugin_info['name'] . '-' . $tab_arr['key'] . '-settings-nonce' ] ), self::$plugin_info['name'] . '-' . $tab_arr['key'] . '-settings-nonce' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 763 764 // Special fields. 764 765 765 766 if ( isset( $_POST[ self::$plugin_info['name'] ]['general']['coming_soon_text'] ) ) { 766 $default_settings['general']['coming_soon_text'] = wp_kses_post( $_POST[ self::$plugin_info['name'] ]['general']['coming_soon_text'] ); 767 $default_settings['general']['coming_soon_text'] = wp_kses_post( $_POST[ self::$plugin_info['name'] ]['general']['coming_soon_text'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash 767 768 } elseif ( isset( $_POST[ self::$plugin_info['name'] ][ $tab_arr['key'] ] ) ) { 768 769 $default_settings[ $tab_arr['key'] ] = self::$default_settings[ $tab_arr['key'] ]; … … 785 786 786 787 if ( isset( $_POST[ self::$plugin_info['name'] ]['general']['single_placement_position'] ) ) { 787 $default_settings['general']['single_placement_position'] = sanitize_text_field( $_POST[ self::$plugin_info['name'] ]['general']['single_placement_position']);788 $default_settings['general']['single_placement_position'] = sanitize_text_field( wp_unslash( $_POST[ self::$plugin_info['name'] ]['general']['single_placement_position'] ) ); 788 789 } 789 790 if ( isset( $_POST[ self::$plugin_info['name'] ]['general']['single_placement_position_priority'] ) ) { 790 $default_settings['general']['single_placement_position_priority'] = (int) sanitize_text_field( $_POST[ self::$plugin_info['name'] ]['general']['single_placement_position_priority']);791 $default_settings['general']['single_placement_position_priority'] = (int) sanitize_text_field( wp_unslash( $_POST[ self::$plugin_info['name'] ]['general']['single_placement_position_priority'] ) ); 791 792 } 792 793 … … 796 797 } 797 798 } 798 do_action( self::$plugin_info['name'] . '-main-settings-save' ); 799 do_action( self::$plugin_info['name'] . '-main-settings-save' ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound 799 800 } 800 801 -
coming-soon-products-for-woocommerce/trunk/readme.txt
r3428127 r3442611 3 3 Tested up to: 6.9 4 4 Requires at least: 5.6 5 Requires PHP: 7.0 6 Version: 1.2. 47 Stable Tag: 1.2.45 Requires PHP: 7.0.0 6 Version: 1.2.5 7 Stable tag: 1.2.5 8 8 Contributors: GrandPlugins 9 9 Author: GrandPlugins 10 10 Plugin URI: https://grandplugins.com/product/woo-coming-soon-products/ 11 11 Author email: [email protected] 12 License: GPLv3 13 License URI: https://www.gnu.org/licenses/gpl-3.0.html 12 License: GPLv2 13 License URI: https://www.gnu.org/licenses/gpl-2.0.html 14 15 Allow Coming Soon mode for WooCommerce Products. 14 16 15 17 == Description == -
coming-soon-products-for-woocommerce/trunk/templates/settings/badge-settings.php
r3211482 r3442611 1 <?php 2 defined( 'ABSPATH' ) || exit; 3 ?> 1 4 <div class="<?php echo esc_attr( $plugin_info['classes_prefix'] . '-badge-settings-wrapper' ); ?> bg-white shadow-sm"> 2 5 <div class="container-fluid"> … … 7 10 <div class="settings-list"> 8 11 <div class="notice notice-warning notice-alt"> 9 <p><?php esc_html_e( 'If you experience an issue regarding the badge styles / position in frontend, It could be due to a conflict with your theme styles. Please', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?><a style="margin:0px 5px;" target="_blank" href="https://grandplugins.com/contact-us/"><?php esc_html_e( 'Contact Us', 'gpls-wcsamm-coming-soon-for-woocommerce' ); ?></a><?php esc_html_e( 'with the theme name, screenshots or a test link in order to fix it', 'gpls-wcsamm-coming-soon-for-woocommerce' ); ?></p>12 <p><?php esc_html_e( 'If you experience an issue regarding the badge styles / position in frontend, It could be due to a conflict with your theme styles. Please', 'coming-soon-products-for-woocommerce' ); ?><a style="margin:0px 5px;" target="_blank" href="https://grandplugins.com/contact-us/"><?php esc_html_e( 'Contact Us', 'coming-soon-products-for-woocommerce' ); ?></a><?php esc_html_e( 'with the theme name, screenshots or a test link in order to fix it', 'coming-soon-products-for-woocommerce' ); ?></p> 10 13 </div> 11 14 <!-- Enable | Disable the badge --> 12 15 <div class="my-5 row badge-status"> 13 16 <div class="col-3"> 14 <h6><?php esc_html_e( 'Badge Status', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>17 <h6><?php esc_html_e( 'Badge Status', 'coming-soon-products-for-woocommerce' ); ?></h6> 15 18 </div> 16 19 <div class="col-9"> 17 20 <label for="badge-status"> 18 21 <input type="checkbox" name="<?php echo esc_attr( $plugin_info['name'] . '[badge][badge_status]' ); ?>" class="edit edit-badge-status" <?php echo esc_attr( 'on' === $badge_settings['badge_status'] ? 'checked' : '' ); ?> > 19 <?php esc_html_e( 'Enable the Badge', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?>22 <?php esc_html_e( 'Enable the Badge', 'coming-soon-products-for-woocommerce' ); ?> 20 23 </label> 21 24 </div> … … 24 27 <div class="my-5 row badge-icon-select mb-3"> 25 28 <div class="col-3"> 26 <h6><?php esc_html_e( 'Badge Icon', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>29 <h6><?php esc_html_e( 'Badge Icon', 'coming-soon-products-for-woocommerce' ); ?></h6> 27 30 </div> 28 31 <div class="col-9"> … … 33 36 <div class="col"> 34 37 <div class="badge-icons-toggler"> 35 <button class="badge-icons-toggle button-primary"><?php esc_html_e( 'Available Icons', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></button>38 <button class="badge-icons-toggle button-primary"><?php esc_html_e( 'Available Icons', 'coming-soon-products-for-woocommerce' ); ?></button> 36 39 </div> 37 40 </div> … … 47 50 48 51 <div class="badge-icons-wrapper row collapse"> 49 <?php foreach ( $available_badges as $badge ) : ?>52 <?php foreach ( $available_badges as $badge ) : // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound ?> 50 53 <div class="badge-icon-element col border shadow-sm px-3 py-1"> 51 54 <input <?php echo esc_attr( $badge['name'] === $badge_settings['badge_icon'] ? 'checked' : '' ); ?> type="radio" value="<?php echo esc_attr( $badge['name'] ); ?>" name="<?php echo esc_attr( $plugin_info['name'] . '[badge][badge_icon]' ); ?>" class="edit edit-badge-icon-radio d-block mx-auto my-3"> … … 59 62 <div class="row my-5"> 60 63 <div class="col-3"> 61 <h6><?php esc_html_e( 'Badge Side', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>64 <h6><?php esc_html_e( 'Badge Side', 'coming-soon-products-for-woocommerce' ); ?></h6> 62 65 </div> 63 66 <div class="col-9"> 64 67 <select class="edit-badge-icon-position" name="<?php echo esc_attr( $plugin_info['name'] . '[badge][badge_side]' ); ?>" > 65 <option <?php selected( $badge_settings['badge_side'], 'top_left' ); ?> value="<?php echo esc_attr( 'top_left' ); ?>"><?php esc_html_e( 'Top Left', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>66 <option disabled <?php selected( $badge_settings['badge_side'], 'top_center' ); ?> value="<?php echo esc_attr( 'top_center' ); ?>"><?php esc_html_e( 'Top Center (PRO)', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>67 <option <?php selected( $badge_settings['badge_side'], 'top_right' ); ?> value="<?php echo esc_attr( 'top_right' ); ?>"><?php esc_html_e( 'Top Right', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>68 <option disabled <?php selected( $badge_settings['badge_side'], 'bottom_left' ); ?> value="<?php echo esc_attr( 'bottom_left' ); ?>"><?php esc_html_e( 'Bottom Left (PRO)', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>69 <option disabled <?php selected( $badge_settings['badge_side'], 'bottom_center' ); ?> value="<?php echo esc_attr( 'bottom_center' ); ?>"><?php esc_html_e( 'Bottom Center (PRO)', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>70 <option disabled <?php selected( $badge_settings['badge_side'], 'bottom_right' ); ?> value="<?php echo esc_attr( 'bottom_right' ); ?>"><?php esc_html_e( 'Bottom Right (PRO)', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>71 <option disabled <?php selected( $badge_settings['badge_side'], 'left_center' ); ?> value="<?php echo esc_attr( 'left_center' ); ?>"><?php esc_html_e( 'Left Center (PRO)', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>72 <option disabled <?php selected( $badge_settings['badge_side'], 'right_center' ); ?> value="<?php echo esc_attr( 'right_center' ); ?>"><?php esc_html_e( 'Right Center (PRO)', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>68 <option <?php selected( $badge_settings['badge_side'], 'top_left' ); ?> value="<?php echo esc_attr( 'top_left' ); ?>"><?php esc_html_e( 'Top Left', 'coming-soon-products-for-woocommerce' ); ?></option> 69 <option disabled <?php selected( $badge_settings['badge_side'], 'top_center' ); ?> value="<?php echo esc_attr( 'top_center' ); ?>"><?php esc_html_e( 'Top Center (PRO)', 'coming-soon-products-for-woocommerce' ); ?></option> 70 <option <?php selected( $badge_settings['badge_side'], 'top_right' ); ?> value="<?php echo esc_attr( 'top_right' ); ?>"><?php esc_html_e( 'Top Right', 'coming-soon-products-for-woocommerce' ); ?></option> 71 <option disabled <?php selected( $badge_settings['badge_side'], 'bottom_left' ); ?> value="<?php echo esc_attr( 'bottom_left' ); ?>"><?php esc_html_e( 'Bottom Left (PRO)', 'coming-soon-products-for-woocommerce' ); ?></option> 72 <option disabled <?php selected( $badge_settings['badge_side'], 'bottom_center' ); ?> value="<?php echo esc_attr( 'bottom_center' ); ?>"><?php esc_html_e( 'Bottom Center (PRO)', 'coming-soon-products-for-woocommerce' ); ?></option> 73 <option disabled <?php selected( $badge_settings['badge_side'], 'bottom_right' ); ?> value="<?php echo esc_attr( 'bottom_right' ); ?>"><?php esc_html_e( 'Bottom Right (PRO)', 'coming-soon-products-for-woocommerce' ); ?></option> 74 <option disabled <?php selected( $badge_settings['badge_side'], 'left_center' ); ?> value="<?php echo esc_attr( 'left_center' ); ?>"><?php esc_html_e( 'Left Center (PRO)', 'coming-soon-products-for-woocommerce' ); ?></option> 75 <option disabled <?php selected( $badge_settings['badge_side'], 'right_center' ); ?> value="<?php echo esc_attr( 'right_center' ); ?>"><?php esc_html_e( 'Right Center (PRO)', 'coming-soon-products-for-woocommerce' ); ?></option> 73 76 </select> 74 77 <?php $core->pro_btn(); ?> … … 78 81 <div class="row my-5"> 79 82 <div class="col-3"> 80 <h6><?php esc_html_e( 'Single Badge Side', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?> <?php $core->pro_btn(); ?></h6>83 <h6><?php esc_html_e( 'Single Badge Side', 'coming-soon-products-for-woocommerce' ); ?> <?php $core->pro_btn(); ?></h6> 81 84 </div> 82 85 <div class="col-9"> 83 86 <select disabled class="edit-badge-icon-position"> 84 <option value="<?php echo esc_attr( 'top_left' ); ?>"><?php esc_html_e( 'Top Left', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>85 <option value="<?php echo esc_attr( 'top_center' ); ?>"><?php esc_html_e( 'Top Center', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>86 <option value="<?php echo esc_attr( 'top_right' ); ?>"><?php esc_html_e( 'Top Right', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>87 <option value="<?php echo esc_attr( 'left_center' ); ?>"><?php esc_html_e( 'Left Center', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>88 <option value="<?php echo esc_attr( 'bottom_left' ); ?>"><?php esc_html_e( 'Bottom Left', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>89 <option value="<?php echo esc_attr( 'bottom_center' ); ?>"><?php esc_html_e( 'Bottom Center', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>90 <option value="<?php echo esc_attr( 'right_center' ); ?>"><?php esc_html_e( 'Right Center', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>91 <option value="<?php echo esc_attr( 'bottom_right' ); ?>"><?php esc_html_e( 'Bottom Right', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></option>87 <option value="<?php echo esc_attr( 'top_left' ); ?>"><?php esc_html_e( 'Top Left', 'coming-soon-products-for-woocommerce' ); ?></option> 88 <option value="<?php echo esc_attr( 'top_center' ); ?>"><?php esc_html_e( 'Top Center', 'coming-soon-products-for-woocommerce' ); ?></option> 89 <option value="<?php echo esc_attr( 'top_right' ); ?>"><?php esc_html_e( 'Top Right', 'coming-soon-products-for-woocommerce' ); ?></option> 90 <option value="<?php echo esc_attr( 'left_center' ); ?>"><?php esc_html_e( 'Left Center', 'coming-soon-products-for-woocommerce' ); ?></option> 91 <option value="<?php echo esc_attr( 'bottom_left' ); ?>"><?php esc_html_e( 'Bottom Left', 'coming-soon-products-for-woocommerce' ); ?></option> 92 <option value="<?php echo esc_attr( 'bottom_center' ); ?>"><?php esc_html_e( 'Bottom Center', 'coming-soon-products-for-woocommerce' ); ?></option> 93 <option value="<?php echo esc_attr( 'right_center' ); ?>"><?php esc_html_e( 'Right Center', 'coming-soon-products-for-woocommerce' ); ?></option> 94 <option value="<?php echo esc_attr( 'bottom_right' ); ?>"><?php esc_html_e( 'Bottom Right', 'coming-soon-products-for-woocommerce' ); ?></option> 92 95 </select> 93 96 </div> 94 <small><?php esc_html_e( 'Badge side in single product page', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></small>97 <small><?php esc_html_e( 'Badge side in single product page', 'coming-soon-products-for-woocommerce' ); ?></small> 95 98 </div> 96 99 <!-- Badge Width - Height --> 97 100 <div class="row my-5"> 98 101 <div class="col-3"> 99 <h6><?php esc_html_e( 'Dimension', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>102 <h6><?php esc_html_e( 'Dimension', 'coming-soon-products-for-woocommerce' ); ?></h6> 100 103 </div> 101 104 <div class="col-9"> 102 105 <div class="row"> 103 106 <div class="col-md-6 my-2"> 104 <h6 class="col-12 mb-3"><?php esc_html_e( 'Width', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>107 <h6 class="col-12 mb-3"><?php esc_html_e( 'Width', 'coming-soon-products-for-woocommerce' ); ?></h6> 105 108 <input type="number" value="<?php echo esc_attr( $badge_settings['badge_width'] ); ?>" name="<?php echo esc_attr( $plugin_info['name'] . '[badge][badge_width]' ); ?>" class="edit edit-badge-icon-width"> <?php echo esc_html( 'px' ); ?> 106 109 </div> 107 110 <div class="col-md-6 my-2"> 108 <h6 class="col-12 mb-3"><?php esc_html_e( 'Height', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>111 <h6 class="col-12 mb-3"><?php esc_html_e( 'Height', 'coming-soon-products-for-woocommerce' ); ?></h6> 109 112 <input type="number" value="<?php echo esc_attr( $badge_settings['badge_height'] ); ?>" name="<?php echo esc_attr( $plugin_info['name'] . '[badge][badge_height]' ); ?>" class="edit edit-badge-icon-height"> <?php echo esc_html( 'px' ); ?> 110 113 </div> … … 115 118 <div class="row my-5"> 116 119 <div class="col-3"> 117 <h6 class="col-12 mb-3"><?php esc_html_e( 'Margin', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>120 <h6 class="col-12 mb-3"><?php esc_html_e( 'Margin', 'coming-soon-products-for-woocommerce' ); ?></h6> 118 121 </div> 119 122 <div class="col-9"> 120 123 <div class="row"> 121 124 <div class="col-md-6 my-2"> 122 <h6 class="col-12 mb-3"><?php esc_html_e( 'Horizontal Margin', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>125 <h6 class="col-12 mb-3"><?php esc_html_e( 'Horizontal Margin', 'coming-soon-products-for-woocommerce' ); ?></h6> 123 126 <input type="number" name="<?php echo esc_attr( $plugin_info['name'] . '[badge][badge_left]' ); ?>" value="<?php echo esc_attr( $badge_settings['badge_left'] ); ?>" min="0" max="100" class="edit edit-badge-padding-left"> <?php echo esc_html( 'px' ); ?> 124 127 </div> 125 128 <div class="col-md-6 my-2"> 126 <h6 class="col-12 mb-3"><?php esc_html_e( 'Vertical Margin', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>129 <h6 class="col-12 mb-3"><?php esc_html_e( 'Vertical Margin', 'coming-soon-products-for-woocommerce' ); ?></h6> 127 130 <input type="number" name="<?php echo esc_attr( $plugin_info['name'] . '[badge][badge_top]' ); ?>" value="<?php echo esc_attr( $badge_settings['badge_top'] ); ?>" min="0" max="100" class="edit edit-badge-padding-top"> <?php echo esc_html( 'px' ); ?> 128 131 </div> … … 133 136 <div class="row my-5"> 134 137 <div class="col-3"> 135 <h6 class="col-12 mb-3"><?php esc_html_e( 'Angle', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>138 <h6 class="col-12 mb-3"><?php esc_html_e( 'Angle', 'coming-soon-products-for-woocommerce' ); ?></h6> 136 139 </div> 137 140 <div class="col-9"> … … 142 145 <div class="row my-5"> 143 146 <div class="col-3"> 144 <h6><?php esc_html_e( 'Responsive', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>147 <h6><?php esc_html_e( 'Responsive', 'coming-soon-products-for-woocommerce' ); ?></h6> 145 148 <?php $core->pro_btn(); ?> 146 149 </div> … … 148 151 <div class="row"> 149 152 <div class="col-md-4 my-2"> 150 <h6 class="col-12 mb-3"><?php esc_html_e( 'Max Screen width', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>153 <h6 class="col-12 mb-3"><?php esc_html_e( 'Max Screen width', 'coming-soon-products-for-woocommerce' ); ?></h6> 151 154 <input type="number" disabled value="<?php echo esc_attr( $badge_settings['badge_resp_breakpoint'] ); ?>" name="<?php echo esc_attr( $plugin_info['name'] . '[badge][badge_resp_breakpoint]' ); ?>" class="edit edit-badge-icon-width"> <?php echo esc_html( 'px' ); ?> 152 155 </div> 153 156 <div class="col-md-4 my-2"> 154 <h6 class="col-12 mb-3"><?php esc_html_e( 'Width', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>157 <h6 class="col-12 mb-3"><?php esc_html_e( 'Width', 'coming-soon-products-for-woocommerce' ); ?></h6> 155 158 <input type="number" disabled value="<?php echo esc_attr( $badge_settings['badge_resp_width'] ); ?>" name="<?php echo esc_attr( $plugin_info['name'] . '[badge][badge_resp_width]' ); ?>" class="edit edit-badge-icon-width"> <?php echo esc_html( 'px' ); ?> 156 159 </div> 157 160 <div class="col-md-4 my-2"> 158 <h6 class="col-12 mb-3"><?php esc_html_e( 'Height', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>161 <h6 class="col-12 mb-3"><?php esc_html_e( 'Height', 'coming-soon-products-for-woocommerce' ); ?></h6> 159 162 <input type="number" disabled value="<?php echo esc_attr( $badge_settings['badge_resp_height'] ); ?>" name="<?php echo esc_attr( $plugin_info['name'] . '[badge][badge_resp_height]' ); ?>" class="edit edit-badge-icon-height"> <?php echo esc_html( 'px' ); ?> 160 163 </div> 161 164 </div> 162 165 <div class="col-12"> 163 <p class="text-center p-3 text-muted"><?php esc_html_e( 'Set badge width and height at smaller screens', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></p>166 <p class="text-center p-3 text-muted"><?php esc_html_e( 'Set badge width and height at smaller screens', 'coming-soon-products-for-woocommerce' ); ?></p> 164 167 </div> 165 168 </div> … … 169 172 <div class="col-3"> 170 173 <h6 class="col-12 mb-3"> 171 <?php esc_html_e( 'Z-Index', ' woo-coming-soon-products' ); ?>174 <?php esc_html_e( 'Z-Index', 'coming-soon-products-for-woocommerce' ); ?> 172 175 <span><?php $core->new_keyword( 'New', false ); ?></span> 173 176 <span><?php $core->pro_btn(); ?></span> -
coming-soon-products-for-woocommerce/trunk/templates/settings/countdown-settings.php
r2878018 r3442611 1 1 <?php 2 defined( 'ABSPATH' ) || exit; 2 3 use GPLSCore\GPLS_PLUGIN_WCSAMM\Settings; 3 4 ?> … … 11 12 <div class="settings-list row"> 12 13 <div class="loop-wrapper col-12 my-3 p-3 bg-white shadow-sm"> 13 <h4><?php esc_html_e( 'Loop Settings', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h4>14 <span><?php esc_html_e( 'Settings for countdown on loop pages like shop, categories, tags pages, etc...', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>14 <h4><?php esc_html_e( 'Loop Settings', 'coming-soon-products-for-woocommerce' ); ?></h4> 15 <span><?php esc_html_e( 'Settings for countdown on loop pages like shop, categories, tags pages, etc...', 'coming-soon-products-for-woocommerce' ); ?></span> 15 16 <div class="container-fluid border mt-4"> 16 17 <!-- Loop coming soon status --> … … 18 19 <div class="row"> 19 20 <div class="col-md-3"> 20 <h6 class="mb-1"><?php esc_html_e( 'Coming Soon Countdown', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>21 <h6 class="mb-1"><?php esc_html_e( 'Coming Soon Countdown', 'coming-soon-products-for-woocommerce' ); ?></h6> 21 22 </div> 22 23 <div class="col-md-9"> 23 24 <input type="checkbox" class="regular-text" name="<?php echo esc_attr( $plugin_info['name'] . '[countdown][loop][status]' ); ?>" <?php echo esc_attr( 'on' === $countdown_settings['loop']['status'] ? 'checked="checked"' : '' ); ?> > 24 <small><?php esc_html_e( 'Show the coming soon countdown on loop pages', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></small>25 <small><?php esc_html_e( 'Show the coming soon countdown on loop pages', 'coming-soon-products-for-woocommerce' ); ?></small> 25 26 </div> 26 27 </div> … … 30 31 <div class="row"> 31 32 <div class="col-md-3"> 32 <h6><?php esc_html_e( 'Show Coming Soon Text', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>33 <h6><?php esc_html_e( 'Show Coming Soon Text', 'coming-soon-products-for-woocommerce' ); ?></h6> 33 34 </div> 34 35 <div class="col-md-9"> 35 36 <input type="checkbox" class="regular-text" name="<?php echo esc_attr( $plugin_info['name'] . '[countdown][loop][text_status]' ); ?>" <?php echo esc_attr( 'on' === $countdown_settings['loop']['text_status'] ? 'checked="checked"' : '' ); ?> > 36 <small><?php esc_html_e( 'Show the product coming soon text on loop pages', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></small>37 <small><?php esc_html_e( 'Show the product coming soon text on loop pages', 'coming-soon-products-for-woocommerce' ); ?></small> 37 38 </div> 38 39 </div> … … 41 42 </div> 42 43 <div class="colors-wrapper col-12 my-2 p-3 bg-white shadow-sm"> 43 <h4><?php echo esc_html( 'Colors', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h4>44 <h4><?php echo esc_html( 'Colors', 'coming-soon-products-for-woocommerce' ); ?></h4> 44 45 <div class="row"> 45 46 <!-- Days --> 46 47 <div class="border settings-group my-4 py-4 col-md-3"> 47 <h4><?php esc_html_e( 'Days', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h4>48 <div class="countgroup-wrapper subtitle"> 49 <!-- Title Color --> 50 <div class="my-5 row countdown-rotor-color"> 51 <div class="col-4"> 52 <h6><?php esc_html_e( 'Title Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>48 <h4><?php esc_html_e( 'Days', 'coming-soon-products-for-woocommerce' ); ?></h4> 49 <div class="countgroup-wrapper subtitle"> 50 <!-- Title Color --> 51 <div class="my-5 row countdown-rotor-color"> 52 <div class="col-4"> 53 <h6><?php esc_html_e( 'Title Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 53 54 </div> 54 55 <div class="col-8"> … … 61 62 <div class="my-5 row countdown-rotor-color"> 62 63 <div class="col-4"> 63 <h6><?php esc_html_e( 'Front Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>64 <h6><?php esc_html_e( 'Front Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 64 65 </div> 65 66 <div class="col-8"> … … 72 73 <div class="my-5 row countdown-rotor-color"> 73 74 <div class="col-4"> 74 <h6><?php esc_html_e( 'Back Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>75 <h6><?php esc_html_e( 'Back Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 75 76 </div> 76 77 <div class="col-8"> … … 83 84 <div class="my-5 row countdown-rotor-color"> 84 85 <div class="col-4"> 85 <h6><?php esc_html_e( 'Divider Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>86 <h6><?php esc_html_e( 'Divider Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 86 87 </div> 87 88 <div class="col-8"> … … 95 96 <!-- Hours --> 96 97 <div class="border settings-group my-4 py-4 col-md-3"> 97 <h4><?php esc_html_e( 'Hours', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h4>98 <div class="countgroup-wrapper subtitle"> 99 <!-- Title Color --> 100 <div class="my-5 row countdown-rotor-color"> 101 <div class="col-4"> 102 <h6><?php esc_html_e( 'Title Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>98 <h4><?php esc_html_e( 'Hours', 'coming-soon-products-for-woocommerce' ); ?></h4> 99 <div class="countgroup-wrapper subtitle"> 100 <!-- Title Color --> 101 <div class="my-5 row countdown-rotor-color"> 102 <div class="col-4"> 103 <h6><?php esc_html_e( 'Title Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 103 104 </div> 104 105 <div class="col-8"> … … 111 112 <div class="my-5 row countdown-rotor-color"> 112 113 <div class="col-4"> 113 <h6><?php esc_html_e( 'Front Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>114 <h6><?php esc_html_e( 'Front Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 114 115 </div> 115 116 <div class="col-8"> … … 122 123 <div class="my-5 row countdown-rotor-color"> 123 124 <div class="col-4"> 124 <h6><?php esc_html_e( 'Back Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>125 <h6><?php esc_html_e( 'Back Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 125 126 </div> 126 127 <div class="col-8"> … … 133 134 <div class="my-5 row countdown-rotor-color"> 134 135 <div class="col-4"> 135 <h6><?php esc_html_e( 'Divider Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>136 <h6><?php esc_html_e( 'Divider Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 136 137 </div> 137 138 <div class="col-8"> … … 145 146 <!-- Minutes --> 146 147 <div class="border settings-group my-4 py-4 col-md-3"> 147 <h4><?php esc_html_e( 'Minutes', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h4>148 <div class="countgroup-wrapper subtitle"> 149 <!-- Title Color --> 150 <div class="my-5 row countdown-rotor-color"> 151 <div class="col-4"> 152 <h6><?php esc_html_e( 'Title Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>148 <h4><?php esc_html_e( 'Minutes', 'coming-soon-products-for-woocommerce' ); ?></h4> 149 <div class="countgroup-wrapper subtitle"> 150 <!-- Title Color --> 151 <div class="my-5 row countdown-rotor-color"> 152 <div class="col-4"> 153 <h6><?php esc_html_e( 'Title Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 153 154 </div> 154 155 <div class="col-8"> … … 161 162 <div class="my-5 row countdown-rotor-color"> 162 163 <div class="col-4"> 163 <h6><?php esc_html_e( 'Front Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>164 <h6><?php esc_html_e( 'Front Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 164 165 </div> 165 166 <div class="col-8"> … … 172 173 <div class="my-5 row countdown-rotor-color"> 173 174 <div class="col-4"> 174 <h6><?php esc_html_e( 'Back Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>175 <h6><?php esc_html_e( 'Back Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 175 176 </div> 176 177 <div class="col-8"> … … 183 184 <div class="my-5 row countdown-rotor-color"> 184 185 <div class="col-4"> 185 <h6><?php esc_html_e( 'Divider Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>186 <h6><?php esc_html_e( 'Divider Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 186 187 </div> 187 188 <div class="col-8"> … … 195 196 <!-- Seconds --> 196 197 <div class="border settings-group my-4 py-4 col-md-3"> 197 <h4><?php esc_html_e( 'Seconds', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h4>198 <div class="countgroup-wrapper subtitle"> 199 <!-- Title Color --> 200 <div class="my-5 row countdown-rotor-color"> 201 <div class="col-4"> 202 <h6><?php esc_html_e( 'Title Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>198 <h4><?php esc_html_e( 'Seconds', 'coming-soon-products-for-woocommerce' ); ?></h4> 199 <div class="countgroup-wrapper subtitle"> 200 <!-- Title Color --> 201 <div class="my-5 row countdown-rotor-color"> 202 <div class="col-4"> 203 <h6><?php esc_html_e( 'Title Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 203 204 </div> 204 205 <div class="col-8"> … … 211 212 <div class="my-5 row countdown-rotor-color"> 212 213 <div class="col-4"> 213 <h6><?php esc_html_e( 'Front Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>214 <h6><?php esc_html_e( 'Front Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 214 215 </div> 215 216 <div class="col-8"> … … 222 223 <div class="my-5 row countdown-rotor-color"> 223 224 <div class="col-4"> 224 <h6><?php esc_html_e( 'Back Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>225 <h6><?php esc_html_e( 'Back Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 225 226 </div> 226 227 <div class="col-8"> … … 233 234 <div class="my-5 row countdown-rotor-color"> 234 235 <div class="col-4"> 235 <h6><?php esc_html_e( 'Divider Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>236 <h6><?php esc_html_e( 'Divider Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 236 237 </div> 237 238 <div class="col-8"> -
coming-soon-products-for-woocommerce/trunk/templates/settings/email-settings.php
r2952398 r3442611 1 1 <?php 2 defined( 'ABSPATH' ) || exit; 2 3 use GPLSCorePro\GPLS_PLUGIN_WCSAMM\ComingSoonBackend; 3 4 use GPLSCorePro\GPLS_PLUGIN_WCSAMM\ComingSoonEmails; … … 13 14 <div class="loop-wrapper col-12 my-3 p-3 bg-white shadow-sm"> 14 15 <div class="container-fluid border"> 15 <h3 class="mt-3"><?php esc_html_e( 'Subscribed Emails', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?><?php $core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product d-gpls-premium-btn-wave-product-shortcode', '', false ); ?></h3>16 <h3 class="mt-3"><?php esc_html_e( 'Subscribed Emails', 'coming-soon-products-for-woocommerce' ); ?><?php $core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product d-gpls-premium-btn-wave-product-shortcode', '', false ); ?></h3> 16 17 </div> 17 18 </div> -
coming-soon-products-for-woocommerce/trunk/templates/settings/general-settings.php
r3027410 r3442611 1 1 <?php 2 defined( 'ABSPATH' ) || exit; 2 3 use GPLSCore\GPLS_PLUGIN_WCSAMM\Settings; 3 4 … … 15 16 <div class="row"> 16 17 <div class="col-md-3"> 17 <h6><?php esc_html_e( 'Coming soon section position', ' woo-coming-soon-products' ); ?><span class="ms-1"><?php $core->new_keyword( 'New', false ); ?></span></h6>18 <h6><?php esc_html_e( 'Coming soon section position', 'coming-soon-products-for-woocommerce' ); ?><span class="ms-1"><?php $core->new_keyword( 'New', false ); ?></span></h6> 18 19 </div> 19 20 <div class="col-md-9"> 20 21 <div class="settings-field-section my-3 shadow-sm p-3"> 21 22 <?php Settings::single_product_placement_actions_select( $plugin_info['name'] . '[general][single_placement_position]', $general_settings['single_placement_position'] ); ?> 22 <small class="d-block mt-3"><?php esc_html_e( 'Action hook to place the coming soon section [ coming soon text - coming soon countdown - subscription form ] in single product page', ' woo-coming-soon-products' ); ?></small>23 <small class="d-block mt-3"><?php esc_html_e( 'Action hook to place the coming soon section [ coming soon text - coming soon countdown - subscription form ] in single product page', 'coming-soon-products-for-woocommerce' ); ?></small> 23 24 </div> 24 25 <div class="settings-field-section my-3 shadow-sm p-3"> 25 26 <input type="number" value="<?php echo esc_attr( $general_settings['single_placement_position_priority'] ); ?>" name="<?php echo esc_attr( $plugin_info['name'] . '[general][single_placement_position_priority]' ); ?>"> 26 <small class="d-block mt-3"><?php esc_html_e( 'Action hook priority', ' woo-coming-soon-products' ); ?></small>27 <small class="d-block mt-3"><?php esc_html_e( 'Action hook priority', 'coming-soon-products-for-woocommerce' ); ?></small> 27 28 </div> 28 29 <div class="coming-soon-section-wrapper my-3 shadow-sm p-3"> 29 <h3><?php esc_html_e( 'Coming soon section shortcode', ' woo-coming-soon-products' ); ?></h3>30 <h3><?php esc_html_e( 'Coming soon section shortcode', 'coming-soon-products-for-woocommerce' ); ?></h3> 30 31 <small class="ms-1 ml-1"><?php echo esc_html( ' [ coming soon text - coming soon countdown ]' ); ?></small> 31 <small class="d-block ms-1 ml-1 my-2 text-muted"><?php esc_html_e( 'Use this shortcode in case the coming soon section doesn\'t appear using the hooks selection above. This happens if you are using a blocks-based theme or other themes that manipulate the WooCommerce standard single product template structure.', ' woo-coming-soon-products' ); ?></small>32 <small class="d-block ms-1 ml-1 my-2 text-muted"><?php esc_html_e( 'Use this shortcode in case the coming soon section doesn\'t appear using the hooks selection above. This happens if you are using a blocks-based theme or other themes that manipulate the WooCommerce standard single product template structure.', 'coming-soon-products-for-woocommerce' ); ?></small> 32 33 <div class="coming-soon-section"> 33 34 <code class="d-inline-block my-3"><?php echo esc_html( '[' . str_replace( '-', '_', self::$plugin_info['classes_prefix'] . '-coming-soon-section' ) . ']' ); ?></code> … … 49 50 <div class="row"> 50 51 <div class="col-md-3"> 51 <h6><?php esc_html_e( 'General Coming Soon Text', ' woo-coming-soon-products' ); ?><span class="ms-1"><?php $core->new_keyword( 'New', false ); ?></span></h6>52 <h6><?php esc_html_e( 'General Coming Soon Text', 'coming-soon-products-for-woocommerce' ); ?><span class="ms-1"><?php $core->new_keyword( 'New', false ); ?></span></h6> 52 53 </div> 53 54 <div class="col-md-9"> -
coming-soon-products-for-woocommerce/trunk/templates/settings/subscribe-settings.php
r3027410 r3442611 1 1 <?php 2 defined( 'ABSPATH' ) || exit; 2 3 use GPLSCorePro\GPLS_PLUGIN_WCSAMM\Settings; 3 4 … … 10 11 <div class="loop-wrapper col-12 my-3 p-3 bg-white shadow-sm"> 11 12 <div class="container-fluid border"> 12 <h3 class="mt-3"><?php esc_html_e( 'Subscribe form settings', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?><?php $core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product d-gpls-premium-btn-wave-product-shortcode', '', false ); ?></h3>13 <h3 class="mt-3"><?php esc_html_e( 'Subscribe form settings', 'coming-soon-products-for-woocommerce' ); ?><?php $core->pro_btn( '', 'Pro →', 'd-gpls-premium-btn-wave-product d-gpls-premium-btn-wave-product-shortcode', '', false ); ?></h3> 13 14 <!-- Subscription Form Title --> 14 15 <div class="loop-coming-soon-text-wrapper settings-group my-4 py-4 col-md-12"> 15 16 <div class="row"> 16 17 <div class="col-md-3"> 17 <h6><?php esc_html_e( 'Subscription Form Title', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>18 <h6><?php esc_html_e( 'Subscription Form Title', 'coming-soon-products-for-woocommerce' ); ?></h6> 18 19 </div> 19 20 <div class="col-md-9"> … … 26 27 <div class="row"> 27 28 <div class="col-md-3"> 28 <h6><?php esc_html_e( 'Subscription Form Placeholder', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>29 <h6><?php esc_html_e( 'Subscription Form Placeholder', 'coming-soon-products-for-woocommerce' ); ?></h6> 29 30 </div> 30 31 <div class="col-md-9"> … … 37 38 <div class="row"> 38 39 <div class="col-md-3"> 39 <h6><?php esc_html_e( 'After Submit Text', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>40 <span><?php esc_html_e( 'This text will appear after the Subscription form is submitted', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></span>40 <h6><?php esc_html_e( 'After Submit Text', 'coming-soon-products-for-woocommerce' ); ?></h6> 41 <span><?php esc_html_e( 'This text will appear after the Subscription form is submitted', 'coming-soon-products-for-woocommerce' ); ?></span> 41 42 </div> 42 43 <div class="col-md-9"> … … 49 50 <div class="row"> 50 51 <div class="col-md-3"> 51 <h6><?php esc_html_e( 'Submit Button Text', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>52 <h6><?php esc_html_e( 'Submit Button Text', 'coming-soon-products-for-woocommerce' ); ?></h6> 52 53 </div> 53 54 <div class="col-md-9"> … … 60 61 <div class="row"> 61 62 <div class="col-md-3"> 62 <h6><?php esc_html_e( 'Submit Button Background', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>63 <h6><?php esc_html_e( 'Submit Button Background', 'coming-soon-products-for-woocommerce' ); ?></h6> 63 64 </div> 64 65 <div class="col-md-9"> … … 71 72 <div class="row"> 72 73 <div class="col-md-3"> 73 <h6><?php esc_html_e( 'Submit Button Color', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>74 <h6><?php esc_html_e( 'Submit Button Color', 'coming-soon-products-for-woocommerce' ); ?></h6> 74 75 </div> 75 76 <div class="col-md-9"> … … 82 83 <div class="row"> 83 84 <div class="col-md-3"> 84 <h6><?php esc_html_e( 'Consent Text', ' gpls-wcsamm-coming-soon-for-woocommerce' ); ?></h6>85 <h6><?php esc_html_e( 'Consent Text', 'coming-soon-products-for-woocommerce' ); ?></h6> 85 86 </div> 86 87 <div class="col-md-9">
Note: See TracChangeset
for help on using the changeset viewer.