PluginProbe
Countdown Timer Block – build urgency for events and launches / 1.2.8
Countdown Timer Block – build urgency for events and launches v1.2.8
1.3.3 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 All 32 releases
← All changes | plugin.php +118 -60 1.1.71.2.8 View file →
@@ -1,76 +1,134 @@
1 1 <?php
2 +
2 3 /**
3 - * Plugin Name: Countdown Time - Block
4 + * Plugin Name: Countdown Timer - Block
4 5 * Description: Display your events date into a timer to your visitor with countdown time block
5 - * Version: 1.1.7
6 - * Author: bPlugins LLC
7 - * Author URI: http://bplugins.com
6 + * Version: 1.2.8
7 + * Author: bPlugins
8 + * Author URI: https://bplugins.com
8 9 * License: GPLv3
9 10 * License URI: https://www.gnu.org/licenses/gpl-3.0.txt
10 11 * Text Domain: countdown-time
11 12 */
12 -
13 13 // ABS PATH
14 -if ( !defined( 'ABSPATH' ) ) { exit; }
14 +if ( !defined( 'ABSPATH' ) ) {
15 + exit;
16 +}
17 +if ( function_exists( 'ctb_fs' ) ) {
18 + register_activation_hook( __FILE__, function () {
19 + if ( is_plugin_active( 'countdown-time/plugin.php' ) ) {
20 + deactivate_plugins( 'countdown-time/plugin.php' );
21 + }
22 + if ( is_plugin_active( 'countdown-time-pro/plugin.php' ) ) {
23 + deactivate_plugins( 'countdown-time-pro/plugin.php' );
24 + }
25 + } );
26 +} else {
27 + define( 'CTB_VERSION', ( isset( $_SERVER['HTTP_HOST'] ) && 'localhost' === $_SERVER['HTTP_HOST'] ? time() : '1.2.8' ) );
28 + define( 'CTB_DIR_URL', plugin_dir_url( __FILE__ ) );
29 + define( 'CTB_DIR_PATH', plugin_dir_path( __FILE__ ) );
30 + define( 'CTB_HAS_FREE', 'countdown-time/plugin.php' === plugin_basename( __FILE__ ) );
31 + define( 'CTB_HAS_PRO', 'countdown-time-pro/plugin.php' === plugin_basename( __FILE__ ) );
32 + if ( !function_exists( 'ctb_fs' ) ) {
33 + function ctb_fs() {
34 + global $ctb_fs;
35 + if ( !isset( $ctb_fs ) ) {
36 + $fsStartPath = dirname( __FILE__ ) . '/freemius/start.php';
37 + $bSDKInitPath = dirname( __FILE__ ) . '/bplugins_sdk/init.php';
38 + if ( CTB_HAS_PRO && file_exists( $fsStartPath ) ) {
39 + require_once $fsStartPath;
40 + } else {
41 + if ( CTB_HAS_FREE && file_exists( $bSDKInitPath ) ) {
42 + require_once $bSDKInitPath;
43 + }
44 + }
45 + $ctbConfig = [
46 + 'id' => '14562',
47 + 'slug' => 'countdown-time',
48 + 'premium_slug' => 'countdown-time-pro',
49 + 'type' => 'plugin',
50 + 'public_key' => 'pk_7f62446a2a53154c56c36346db2fa',
51 + 'is_premium' => false,
52 + 'premium_suffix' => 'Pro',
53 + 'has_premium_version' => true,
54 + 'has_addons' => false,
55 + 'has_paid_plans' => true,
56 + 'trial' => [
57 + 'days' => 7,
58 + 'is_require_payment' => true,
59 + ],
60 + 'menu' => [
61 + 'slug' => 'edit.php?post_type=ctb',
62 + 'contact' => false,
63 + 'support' => false,
64 + ],
65 + ];
66 + $ctb_fs = ( CTB_HAS_PRO && file_exists( $fsStartPath ) ? fs_dynamic_init( $ctbConfig ) : fs_lite_dynamic_init( $ctbConfig ) );
67 + }
68 + return $ctb_fs;
69 + }
15 70
16 -// Constant
17 -define( 'CTB_PLUGIN_VERSION', isset( $_SERVER['HTTP_HOST'] ) && 'localhost' === $_SERVER['HTTP_HOST'] ? time() : '1.1.7' );
18 -define( 'CTB_ASSETS_DIR', plugin_dir_url( __FILE__ ) . 'assets/' );
71 + ctb_fs();
72 + do_action( 'ctb_fs_loaded' );
73 + }
74 + function ctbIsPremium() {
75 + return ( CTB_HAS_PRO ? ctb_fs()->can_use_premium_code() : false );
76 + }
19 77
20 -// Countdown Time
21 -class CTBCountdownTime{
22 - function __construct(){
23 - register_activation_hook( __FILE__, [$this, 'onPluginActivate'] );
24 -
25 - if ( version_compare( $GLOBALS['wp_version'], '5.8-alpha-1', '<' ) ) {
26 - add_filter( 'block_categories', [$this, 'blockCategories'] );
27 - } else { add_filter( 'block_categories_all', [$this, 'blockCategories'] ); }
78 + require_once CTB_DIR_PATH . '/includes/pattern.php';
79 + require_once CTB_DIR_PATH . '/includes/CustomPost.php';
80 + require_once CTB_DIR_PATH . '/includes/HelpPage.php';
81 + // if( CTB_HAS_FREE ){
82 + // require_once CTB_DIR_PATH . '/includes/UpgradePage.php';
83 + // }
84 + class CTBPlugin {
85 + function __construct() {
86 + add_action( 'init', [$this, 'onInit'] );
87 + add_action( 'wp_ajax_ctbPipeChecker', [$this, 'ctbPipeChecker'] );
88 + add_action( 'wp_ajax_nopriv_ctbPipeChecker', [$this, 'ctbPipeChecker'] );
89 + add_action( 'admin_init', [$this, 'registerSettings'] );
90 + add_action( 'rest_api_init', [$this, 'registerSettings'] );
91 + add_filter( 'block_categories_all', [$this, 'blockCategories'] );
92 + }
28 93
29 - add_action( 'init', [$this, 'onInit'] );
30 - }
94 + function onInit() {
95 + register_block_type( __DIR__ . '/build' );
96 + }
31 97
32 - function onPluginActivate(){
33 - if ( is_plugin_active( 'countdown-time-pro/plugin.php' ) ){
34 - deactivate_plugins( 'countdown-time-pro/plugin.php' );
35 - }
36 - } // Deactivate pro if active
98 + function ctbPipeChecker() {
99 + $nonce = $_POST['_wpnonce'] ?? null;
100 + if ( !wp_verify_nonce( $nonce, 'wp_ajax' ) ) {
101 + wp_send_json_error( 'Invalid Request' );
102 + }
103 + wp_send_json_success( [
104 + 'isPipe' => ctbIsPremium(),
105 + ] );
106 + }
37 107
38 - function blockCategories( $categories ){
39 - return array_merge( [[
40 - 'slug' => 'CTBlock',
41 - 'title' => 'Countdown Time',
42 - ] ], $categories );
43 - } // Categories
44 -
45 - function onInit() {
46 - wp_register_script( 'ctb-countdown-time-script', plugins_url( 'dist/script.js', __FILE__ ), [ 'react', 'react-dom' ], CTB_PLUGIN_VERSION, true ); // Frontend Script
108 + function registerSettings() {
109 + register_setting( 'ctbUtils', 'ctbUtils', [
110 + 'show_in_rest' => [
111 + 'name' => 'ctbUtils',
112 + 'schema' => [
113 + 'type' => 'string',
114 + ],
115 + ],
116 + 'type' => 'string',
117 + 'default' => wp_json_encode( [
118 + 'nonce' => wp_create_nonce( 'wp_ajax' ),
119 + ] ),
120 + 'sanitize_callback' => 'sanitize_text_field',
121 + ] );
122 + }
47 123
48 - wp_register_style( 'ctb-countdown-time-style', plugins_url( 'dist/style.css', __FILE__ ), [], CTB_PLUGIN_VERSION ); // Style
124 + function blockCategories( $categories ) {
125 + return array_merge( [[
126 + 'slug' => 'CTBlock',
127 + 'title' => 'Countdown Time',
128 + ]], $categories );
129 + }
49 130
50 - wp_register_style( 'ctb-countdown-time-editor-style', plugins_url( 'dist/editor.css', __FILE__ ), [ 'ctb-countdown-time-style' ], CTB_PLUGIN_VERSION ); // Backend Style
131 + }
51 132
52 - register_block_type( __DIR__, [
53 - 'editor_style' => 'ctb-countdown-time-editor-style',
54 - 'render_callback' => [$this, 'render']
55 - ] ); // Register Block
56 -
57 - wp_set_script_translations( 'ctb-countdown-time-editor-script', 'countdown-time', plugin_dir_path( __FILE__ ) . '/languages' ); // Translate
58 - }
59 -
60 - function render( $attributes ){
61 - extract( $attributes );
62 -
63 - // Enqueue assets where has block
64 - wp_enqueue_script( 'ctb-countdown-time-script' );
65 - wp_enqueue_style( 'ctb-countdown-time-style' );
66 -
67 - $className = $className ?? '';
68 - $blockClassName = "wp-block-ctb-countdown-time $className align$align";
69 -
70 - ob_start(); ?>
71 - <div class='<?php echo esc_attr( $blockClassName ); ?>' id='ctbCountdownTime-<?php echo esc_attr( $cId ) ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
72 -
73 - <?php return ob_get_clean();
74 - } // Render
75 -}
76 -new CTBCountdownTime;
133 + new CTBPlugin();
134 +}