PluginProbe
Timetics – Appointment Booking Calendar & Scheduling / 1.0.64
Timetics – Appointment Booking Calendar & Scheduling v1.0.64
1.0.64 1.0.62 1.0.63 1.0.61 1.0.60 1.0.59 1.0.58 1.0.57 1.0.56 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.2 1.0.20 1.0.21 All 65 releases
← All changes | core/enqueue-inline/enqueue-inline.php +35 -92 1.0.56 → 1.0.64 View file →
@@ -10,9 +10,8 @@
10 10
11 11 defined( 'ABSPATH' ) || exit;
12 12
13 13 use Timetics\Utils\Singleton;
14 -use Timetics;
15 14
16 15 /**
17 16 * Class Enqueue_Inline
18 17 */
@@ -20,8 +19,13 @@
20 19 {
21 20 use Singleton;
22 21
23 22 /**
23 + * Template path for dynamic color CSS.
24 + */
25 + const COLOR_TEMPLATE = __DIR__ . '/templates/dynamic-colors.php';
26 +
27 + /**
24 28 * Initialize the shortcode class
25 29 *
26 30 * @return void
27 31 */
@@ -26,113 +30,52 @@
26 30 * @return void
27 31 */
28 32 public function init()
29 33 {
30 - add_action('wp_head', array($this, 'custom_inline_css'));
34 + add_action( 'wp_enqueue_scripts', array( $this, 'custom_inline_css' ), 20 );
31 35 }
32 36
33 37 /**
34 - * Custom inline css
38 + * Build and attach the dynamic color CSS to the frontend stylesheet.
35 39 */
36 40 public function custom_inline_css()
37 41 {
38 - $custom_css = '';
39 - $primary_color = timetics_get_option('primary_color');
40 - $secondary_color = timetics_get_option('secondary_color');
42 + $primary_color = timetics_get_option( 'primary_color' );
43 + $secondary_color = timetics_get_option( 'secondary_color' );
41 44
42 - $custom_css .= "
43 - .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn,
44 - .ant-btn-background-ghost.ant-btn-primary,
45 - .ant-spin,
46 - .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled),
47 - .ant-radio-button-wrapper:hover {
48 - color: {$primary_color};
45 + if ( empty( $primary_color ) && empty( $secondary_color ) ) {
46 + return;
49 47 }
50 48
51 - .flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange,
52 - .ant-spin .ant-spin-dot-item,
53 - .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay,
54 - .ant-btn-primary{
55 - background-color: {$primary_color};
56 - }
49 + $custom_css = $this->render_color_css( $primary_color, $secondary_color );
57 50
58 -
59 - .ant-btn-background-ghost.ant-btn-primary,
60 - .ant-btn-primary,
61 - .ant-input-focused, .ant-input:focus,
62 - .ant-input:hover,
63 - .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled),
64 - .flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay{
65 - border-color: {$primary_color};
51 + if ( '' === trim( $custom_css ) ) {
52 + return;
66 53 }
67 54
68 - .tt-form-left-sidebar .ant-space-item svg,
69 - .tt-form-category-sidebar .ant-space-item svg,
70 - .anticon svg,
71 - .meeting-info-list li svg,
72 - .tt-form-left-sidebar .tt-meeting-location-list .anticon svg ,
73 - .tt-form-category-sidebar .tt-meeting-location-list .anticon svg{
74 - fill: {$primary_color};
75 - }
55 + wp_register_style( 'timetics-custom-css', false, array(), TIMETICS_VERSION );
56 + wp_enqueue_style( 'timetics-custom-css' );
57 + wp_add_inline_style( 'timetics-frontend', $custom_css );
58 + }
76 59
77 - .ant-btn-background-ghost.ant-btn-primary:focus, .ant-btn-background-ghost.ant-btn-primary:hover,
78 - button.ant-btn.ant-btn-default.ant-btn-lg.tt-mb-30:hover{
79 - color: {$secondary_color};
60 + /**
61 + * Render the CSS template with the given colors.
62 + *
63 + * @param string $primary_color
64 + * @param string $secondary_color
65 + *
66 + * @return string
67 + */
68 + protected function render_color_css( $primary_color, $secondary_color )
69 + {
70 + if ( ! file_exists( self::COLOR_TEMPLATE ) ) {
71 + return '';
80 72 }
81 73
82 - .ant-btn-background-ghost.ant-btn-primary:focus, .ant-btn-background-ghost.ant-btn-primary:hover,
83 - .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled),
84 - button.ant-btn.ant-btn-default.ant-btn-lg.tt-mb-30:hover,
85 - .ant-btn-primary:focus, .ant-btn-primary:hover{
86 - border-color: {$secondary_color};
87 - }
74 + $primary_color = sanitize_hex_color( $primary_color ) ?: $primary_color;
75 + $secondary_color = sanitize_hex_color( $secondary_color ) ?: $secondary_color;
88 76
89 - .ant-btn-primary:focus,
90 - .ant-btn-primary:hover{
91 - background-color: {$secondary_color};
92 - }
93 -
94 - .toplevel_page_timetics .ant-btn.ant-btn-primary {
95 - background: {$primary_color};
96 - border-color: {$primary_color};
97 - }
98 -
99 - .tt-slot-list .ant-list-item .ant-btn-block:hover {
100 - color: {$primary_color};
101 - border-color: {$primary_color};
102 - }
103 -
104 - .tt-form-left-sidebar .submit-btn,
105 - .tt-form-category-sidebar .submit-btn,
106 - .tt-booking-body-wrap .submit-btn,
107 - .tt-category-booking-wrap .submit-btn,
108 - .tt-flatpickr-calendar .flatpickr-day.selected,
109 - .toplevel_page_timetics .tt-flatpickr-calendar .flatpickr-day.selected {
110 - background: {$primary_color};
111 - }
112 -
113 - .toplevel_page_timetics .ant-btn.ant-btn-primary:hover,
114 - .toplevel_page_timetics .ant-btn.ant-btn-primary:focus,
115 - .tt-form-left-sidebar .submit-btn:hover,
116 - .tt-form-left-sidebar .submit-btn:focus,
117 - .tt-form-category-sidebar .submit-btn:hover,
118 - .tt-form-category-sidebar .submit-btn:focus,
119 - .tt-booking-body-wrap .submit-btn:hover,
120 - .tt-booking-body-wrap .submit-btn:focus,
121 - .tt-category-booking-wrap .submit-btn:hover,
122 - .tt-category-booking-wrap .submit-btn:focus {
123 - background: {$secondary_color};
124 - }
125 -
126 - .tt-form-left-sidebar .tt-meeting-location-list .anticon.tt-money-icon svg path ,
127 - .tt-form-category-sidebar .tt-meeting-location-list .anticon.tt-money-icon svg path {
128 - stroke: {$primary_color};
129 - }
130 -
131 - ";
132 -
133 - // add inline css.
134 - wp_register_style( 'timetics-custom-css', false, array(), TIMETICS_VERSION );
135 - wp_enqueue_style('timetics-custom-css');
136 - wp_add_inline_style('timetics-frontend', $custom_css);
77 + ob_start();
78 + include self::COLOR_TEMPLATE;
79 + return ob_get_clean();
137 80 }
138 81 }