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 -53 1.1.41.2.8 View file →
@@ -1,69 +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.4
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.4' );
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 - add_action( 'init', [$this, 'onInit'] );
24 - register_activation_hook( __FILE__, [$this, 'onPluginActivate'] );
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 + }
25 93
26 - if ( version_compare( $GLOBALS['wp_version'], '5.8-alpha-1', '<' ) ) {
27 - add_filter( 'block_categories', [$this, 'blockCategories'] );
28 - } else { add_filter( 'block_categories_all', [$this, 'blockCategories'] ); }
29 - }
94 + function onInit() {
95 + register_block_type( __DIR__ . '/build' );
96 + }
30 97
31 - function onPluginActivate(){
32 - if ( is_plugin_active( 'countdown-time-pro/plugin.php' ) ){
33 - deactivate_plugins( 'countdown-time-pro/plugin.php' );
34 - }
35 - }
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 + }
36 107
37 - function blockCategories( $categories ){
38 - return array_merge( [[
39 - 'slug' => 'CTBlock',
40 - 'title' => 'Countdown Time',
41 - ] ], $categories );
42 - } // Categories
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 + }
43 123
44 - function onInit() {
45 - wp_register_style( 'ctb-countdown-time-editor-style', plugins_url( 'dist/editor.css', __FILE__ ), [ 'wp-edit-blocks' ], CTB_PLUGIN_VERSION ); // Backend Style
46 - wp_register_style( 'ctb-countdown-time-style', plugins_url( 'dist/style.css', __FILE__ ), [ 'wp-editor' ], CTB_PLUGIN_VERSION ); // Frontend Style
124 + function blockCategories( $categories ) {
125 + return array_merge( [[
126 + 'slug' => 'CTBlock',
127 + 'title' => 'Countdown Time',
128 + ]], $categories );
129 + }
47 130
48 - register_block_type( __DIR__, [
49 - 'editor_style' => 'ctb-countdown-time-editor-style',
50 - 'style' => 'ctb-countdown-time-style',
51 - 'render_callback' => [$this, 'render']
52 - ] ); // Register Block
53 -
54 - wp_set_script_translations( 'ctb-countdown-time-editor-script', 'countdown-time', plugin_dir_path( __FILE__ ) . '/languages' ); // Translate
55 - }
131 + }
56 132
57 - function render( $attributes ){
58 - extract( $attributes );
59 -
60 - $className = $className ?? '';
61 - $ctbBlockClassName = 'wp-block-ctb-countdown-time ' . $className . ' align' . $align;
62 -
63 - ob_start(); ?>
64 - <div class='<?php echo esc_attr( $ctbBlockClassName ); ?>' id='ctbCountdownTime-<?php echo esc_attr( $cId ) ?>' data-attributes='<?php echo esc_attr( wp_json_encode( $attributes ) ); ?>'></div>
65 -
66 - <?php return ob_get_clean();
67 - } // Render
68 -}
69 -new CTBCountdownTime;
133 + new CTBPlugin();
134 +}