Changeset 3418400
- Timestamp:
- 12/12/2025 03:55:42 PM (40 hours ago)
- Location:
- options-for-twenty-twenty-one
- Files:
-
- 1 deleted
- 4 edited
- 3 copied
-
tags/1.7.9 (copied) (copied from options-for-twenty-twenty-one/trunk)
-
tags/1.7.9/css (deleted)
-
tags/1.7.9/includes/class-oftto-common.php (modified) (29 diffs)
-
tags/1.7.9/options-for-twenty-twenty-one.php (copied) (copied from options-for-twenty-twenty-one/trunk/options-for-twenty-twenty-one.php) (53 diffs)
-
tags/1.7.9/readme.txt (copied) (copied from options-for-twenty-twenty-one/trunk/readme.txt) (3 diffs)
-
trunk/includes/class-oftto-common.php (modified) (29 diffs)
-
trunk/options-for-twenty-twenty-one.php (modified) (53 diffs)
-
trunk/readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
options-for-twenty-twenty-one/tags/1.7.9/includes/class-oftto-common.php
r2986074 r3418400 1 1 <?php 2 2 /* 3 * Version: 1. 3.93 * Version: 1.4.2 4 4 */ 5 5 … … 43 43 public static function plugin_text_domain() { 44 44 45 return self::$plugin_text_domain;45 return 'options-for-twenty-twenty-one'; 46 46 47 47 } … … 61 61 public static function support_url() { 62 62 63 return 'https://wordpress.org/support/plugin/' . self::$plugin_text_domain. '/';63 return 'https://wordpress.org/support/plugin/' . 'options-for-twenty-twenty-one' . '/'; 64 64 65 65 } … … 67 67 public static function control_upgrade_text() { 68 68 69 $upgrade_text = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr(sprintf(__('Upgrade now to %s Premium', self::$plugin_text_domain), self::$plugin_name)) . '">' . sprintf(__('Upgrade now to %s Premium', self::$plugin_text_domain), self::$plugin_name) . '</a>'; 69 /* translators: name of the plugin */ 70 $upgrade_text = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr(sprintf(__('Upgrade now to %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name)) . '">' . sprintf(__('Upgrade now to %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name) . '</a>'; 70 71 71 72 if (!class_exists(self::$plugin_premium_class) || !get_option(self::$plugin_prefix . '_purchased')) { … … 73 74 if (!class_exists(self::$plugin_premium_class)) { 74 75 75 $upgrade_text .= sprintf(wp_kses(__(' or <a href="%s" title="Download Free Trial">trial it for 7 days</a>', self::$plugin_text_domain), array('a' => array('href' => array(), 'title' => array()))), esc_url(self::premium_link())); 76 /* translators: link to the premium upgrade */ 77 $upgrade_text .= sprintf(wp_kses(__(' or <a href="%s" title="Download Free Trial">trial it for 7 days</a>', 'options-for-twenty-twenty-one'), array('a' => array('href' => array(), 'title' => array()))), esc_url(self::premium_link())); 76 78 77 79 } … … 85 87 public static function control_section_description() { 86 88 87 $default_description = sprintf(wp_kses(__('If you have any requests for new features, please <a href="%s" title="Support Forum">let us know in the support forum</a>.', self::$plugin_text_domain), array('a' => array('href' => array(), 'title' => array()))), esc_url(self::support_url())); 89 /* translators: link to the plugin's support forum */ 90 $default_description = sprintf(wp_kses(__('If you have any requests for new features, please <a href="%s" title="Support Forum">let us know in the support forum</a>.', 'options-for-twenty-twenty-one'), array('a' => array('href' => array(), 'title' => array()))), esc_url(self::support_url())); 88 91 89 92 if (self::$plugin_premium_class) { … … 95 98 if (!class_exists(self::$plugin_premium_class)) { 96 99 97 $section_description = '<strong>' . __('For even more options', self::$plugin_text_domain) . '</strong>' . ' ' . $upgrade_text;100 $section_description = '<strong>' . __('For even more options', 'options-for-twenty-twenty-one') . '</strong>' . ' ' . $upgrade_text; 98 101 99 102 } else { 100 103 101 $section_description = '<strong>' . __('To keep using premium options', self::$plugin_text_domain) . '</strong>' . ' ' . $upgrade_text;104 $section_description = '<strong>' . __('To keep using premium options', 'options-for-twenty-twenty-one') . '</strong>' . ' ' . $upgrade_text; 102 105 103 106 } … … 119 122 $section_description .= ' ' . sprintf( 120 123 wp_kses( 124 /* translators: link to plugin install page */ 121 125 __( 122 126 '<strong>To reset this section of options to default settings</strong> without affecting other sections in the customizer, install <a href="%s" title="Reset Customizer">Reset Customizer</a>.', 123 self::$plugin_text_domain127 'options-for-twenty-twenty-one' 124 128 ), 125 129 array('strong' => array(), 'a' => array('href' => array(), 'title' => array())) … … 145 149 public static function control_setting_upgrade_nag() { 146 150 147 $upgrade_nag = self::control_upgrade_text() . __(' to use this option.', self::$plugin_text_domain);151 $upgrade_nag = self::control_upgrade_text() . __(' to use this option.', 'options-for-twenty-twenty-one'); 148 152 149 153 return $upgrade_nag; … … 234 238 235 239 $generated_css = sprintf('%s { %s: %s; }', $selector, $style, $prefix.$mod.$postfix); 236 echo $generated_css; 240 241 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 242 echo wp_strip_all_tags($generated_css); 237 243 238 244 } elseif ($mod) { 239 245 240 246 $generated_css = sprintf('%s { %s:%s; }', $selector, $style, $prefix.$value.$postfix); 241 echo $generated_css; 247 248 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 249 echo wp_strip_all_tags($generated_css); 242 250 243 251 } … … 249 257 if (self::$plugin_premium_class) { 250 258 251 return add_query_arg('url', (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'], 'https://webd.uk/product/' . self::$plugin_text_domain . '-upgrade/'); 252 259 if (isset($_SERVER['HTTP_HOST'])) { 260 261 return add_query_arg('url', (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . filter_var(wp_unslash($_SERVER['HTTP_HOST'], FILTER_SANITIZE_URL)), 'https://webd.uk/product/' . 'options-for-twenty-twenty-one' . '-upgrade/'); 262 263 } else { 264 265 return 'https://webd.uk/product/' . 'options-for-twenty-twenty-one' . '-upgrade/'; 266 267 } 253 268 254 269 } else { … … 276 291 $settings_links = array(); 277 292 278 $settings_links[] = '<a href="' . esc_url($settings_link) . '" title="' . esc_attr(__('Settings', self::$plugin_text_domain)) . '">' . __('Settings', self::$plugin_text_domain) . '</a>';293 $settings_links[] = '<a href="' . esc_url($settings_link) . '" title="' . esc_attr(__('Settings', 'options-for-twenty-twenty-one')) . '">' . __('Settings', 'options-for-twenty-twenty-one') . '</a>'; 279 294 280 295 if (!get_option(self::$plugin_prefix . '_purchased')) { … … 284 299 if (self::$plugin_upgrade) { 285 300 286 $settings_links[] = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr(sprintf(__('Buy %s Premium', self::$plugin_text_domain), self::$plugin_name)) . '" style="color: orange; font-weight: bold;">' . __('Buy Now', self::$plugin_text_domain) . '</a>'; 301 /* translators: name of the plugin */ 302 $settings_links[] = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr(sprintf(__('Buy %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name)) . '" style="color: orange; font-weight: bold;">' . __('Buy Now', 'options-for-twenty-twenty-one') . '</a>'; 287 303 288 304 } else { 289 305 290 $settings_links[] = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr(sprintf(__('Buy %s', self::$plugin_text_domain), self::$plugin_name)) . '" style="color: orange; font-weight: bold;">' . __('Buy Now', self::$plugin_text_domain) . '</a>'; 306 /* translators: name of the plugin */ 307 $settings_links[] = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr(sprintf(__('Buy %s', 'options-for-twenty-twenty-one'), self::$plugin_name)) . '" style="color: orange; font-weight: bold;">' . __('Buy Now', 'options-for-twenty-twenty-one') . '</a>'; 291 308 292 309 } … … 294 311 } else { 295 312 296 $settings_links[] = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr((self::$plugin_premium_class ? sprintf(__('Upgrade now to %s Premium', self::$plugin_text_domain), self::$plugin_name) : sprintf(__('Contribute to %s', self::$plugin_text_domain), self::$plugin_name))) . '" style="color: orange; font-weight: bold;">' . (self::$plugin_premium_class ? __('Upgrade', self::$plugin_text_domain) : __('Support Us', self::$plugin_text_domain)) . '</a>'; 313 /* translators: name of the plugin */ 314 $settings_links[] = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr((self::$plugin_premium_class ? sprintf(__('Upgrade now to %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name) : sprintf(__('Contribute to %s', 'options-for-twenty-twenty-one'), self::$plugin_name))) . '" style="color: orange; font-weight: bold;">' . (self::$plugin_premium_class ? __('Upgrade', 'options-for-twenty-twenty-one') : __('Support Us', 'options-for-twenty-twenty-one')) . '</a>'; 297 315 298 316 } … … 300 318 if ($premium) { 301 319 302 $settings_links[] = '<a href="' . wp_nonce_url('?activate-' . self::$plugin_prefix . '=true', self::$plugin_prefix . '_activate') . '" id="' . self::$plugin_prefix . '_activate_upgrade" title="' . esc_attr(__('Activate Purchase', self::$plugin_text_domain)) . '" onclick="jQuery(this).append(' <img src="/wp-admin/images/loading.gif" style="float: none; width: auto; height: auto;" />'); setTimeout(function(){document.getElementById(\'' . self::$plugin_prefix . '_activate_upgrade\').removeAttribute(\'href\');},1); return true;">' . __('Activate Purchase', self::$plugin_text_domain) . '</a>'; 303 304 } elseif (self::$plugin_trial && !is_plugin_active(self::$plugin_text_domain . '-premium/' . self::$plugin_text_domain . '-premium.php')) { 305 306 $settings_links[] = '<a href="' . esc_url(self::premium_link()) . '" title="' . esc_attr(sprintf(__('Trial %s Premium', self::$plugin_text_domain), self::$plugin_name)) . ' for 7 days">' . __('Download Trial', self::$plugin_text_domain) . '</a>'; 320 $settings_links[] = '<a href="' . wp_nonce_url('?activate-' . self::$plugin_prefix . '=true', self::$plugin_prefix . '_activate') . '" id="' . self::$plugin_prefix . '_activate_upgrade" title="' . esc_attr(__('Activate Purchase', 'options-for-twenty-twenty-one')) . '" onclick="jQuery(this).append(' <img src="/wp-admin/images/loading.gif" style="float: none; width: auto; height: auto;" />'); setTimeout(function(){document.getElementById(\'' . self::$plugin_prefix . '_activate_upgrade\').removeAttribute(\'href\');},1); return true;">' . __('Activate Purchase', 'options-for-twenty-twenty-one') . '</a>'; 321 322 } elseif (self::$plugin_trial && !is_plugin_active('options-for-twenty-twenty-one' . '-premium/' . 'options-for-twenty-twenty-one' . '-premium.php')) { 323 324 /* translators: name of the plugin */ 325 $settings_links[] = '<a href="' . esc_url(self::premium_link()) . '" title="' . esc_attr(sprintf(__('Trial %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name)) . ' for 7 days">' . __('Download Trial', 'options-for-twenty-twenty-one') . '</a>'; 307 326 308 327 } … … 310 329 } elseif ($premium) { 311 330 312 $settings_links[] = '<strong style="color: green; display: inline;">' . __('Purchase Confirmed', self::$plugin_text_domain) . '</strong>';331 $settings_links[] = '<strong style="color: green; display: inline;">' . __('Purchase Confirmed', 'options-for-twenty-twenty-one') . '</strong>'; 313 332 314 333 } … … 320 339 public static function plugin_row_meta($plugin_meta, $plugin_file, $plugin_data, $status) { 321 340 322 if ($plugin_file === self::$plugin_text_domain . '/' . self::$plugin_text_domain . '.php') { 323 324 $plugin_meta[] = '<a href="' . esc_url(self::support_url()) . '" title="' . __('Problems? We are here to help!', self::$plugin_text_domain) . '" style="color: orange; font-weight: bold;">' . __('Need help?', self::$plugin_text_domain) . '</a>'; 325 $plugin_meta[] = '<a href="https://wordpress.org/support/plugin/' . self::$plugin_text_domain . '/reviews/#new-post" title="' . esc_attr(sprintf(__('If you like %s, please leave a review!', self::$plugin_text_domain), self::$plugin_name)) . '">' . __('Review plugin', self::$plugin_text_domain) . '</a>'; 341 if ($plugin_file === 'options-for-twenty-twenty-one' . '/' . 'options-for-twenty-twenty-one' . '.php') { 342 343 $plugin_meta[] = '<a href="' . esc_url(self::support_url()) . '" title="' . __('Problems? We are here to help!', 'options-for-twenty-twenty-one') . '" style="color: orange; font-weight: bold;">' . __('Need help?', 'options-for-twenty-twenty-one') . '</a>'; 344 /* translators: name of the plugin */ 345 $plugin_meta[] = '<a href="https://wordpress.org/support/plugin/' . 'options-for-twenty-twenty-one' . '/reviews/#new-post" title="' . esc_attr(sprintf(__('If you like %s, please leave a review!', 'options-for-twenty-twenty-one'), self::$plugin_name)) . '">' . __('Review plugin', 'options-for-twenty-twenty-one') . '</a>'; 326 346 327 347 } … … 357 377 ?> 358 378 359 <div class="notice notice-error is-dismissible <?php echo self::$plugin_prefix; ?>-notice"> 360 361 <p><strong><?php echo self::$plugin_name; ?></strong><br /> 362 <?php esc_html_e('In order to use the premium features, you need to install the premium version of the plugin ...', self::$plugin_text_domain); ?></p> 363 364 <p><a href="<?php echo esc_url(self::premium_link()); ?>" title="<?php echo esc_attr(sprintf(__('Download %s Premium', self::$plugin_text_domain), self::$plugin_name)); ?>" class="button-primary"><?php printf(__('Download %s Premium', self::$plugin_text_domain), self::$plugin_name); ?></a></p> 379 <div class="notice notice-error is-dismissible <?php echo esc_html(self::$plugin_prefix); ?>-notice"> 380 381 <p><strong><?php echo esc_html(self::$plugin_name); ?></strong><br /> 382 <?php esc_html_e('In order to use the premium features, you need to install the premium version of the plugin ...', 'options-for-twenty-twenty-one'); ?></p> 383 384 <p><a href="<?php 385 /* translators: name of the plugin */ 386 echo esc_url(self::premium_link()); ?>" title="<?php echo esc_attr(sprintf(__('Download %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name)); ?>" class="button-primary"><?php printf(esc_html(__('Download %s Premium', 'options-for-twenty-twenty-one')), esc_html(self::$plugin_name)); ?></a></p> 365 387 366 388 </div> 367 389 368 390 <script type="text/javascript"> 369 jQuery(document).on('click', '.<?php echo self::$plugin_prefix; ?>-notice .notice-dismiss', function() {391 jQuery(document).on('click', '.<?php echo esc_attr(self::$plugin_prefix); ?>-notice .notice-dismiss', function() { 370 392 jQuery.ajax({ 371 393 url: ajaxurl, 372 394 data: { 373 action: 'dismiss_<?php echo self::$plugin_prefix; ?>_notice_handler',374 _ajax_nonce: '<?php echo wp_create_nonce(self::$plugin_prefix . '-ajax-nonce'); ?>'395 action: 'dismiss_<?php echo esc_attr(self::$plugin_prefix); ?>_notice_handler', 396 _ajax_nonce: '<?php echo esc_attr(wp_create_nonce(self::$plugin_prefix . '-ajax-nonce')); ?>' 375 397 } 376 398 }); … … 380 402 <?php 381 403 382 } elseif (!class_exists(self::$plugin_premium_class) && time() > (strtotime('+1 hour', filectime(__DIR__))) && get_user_meta(get_current_user_id(), self::$plugin_prefix . '-notice-dismissed', true) != self::plugin_version()) { 383 384 ?> 385 386 <div class="notice notice-info is-dismissible <?php echo self::$plugin_prefix; ?>-notice"> 387 388 <p><strong><?php printf(__('Thank you for using %s plugin', self::$plugin_text_domain), self::$plugin_name); ?></strong><br /> 404 } elseif ( 405 !class_exists(self::$plugin_premium_class) && 406 time() > (strtotime('+1 hour', filectime(__DIR__))) && 407 get_user_meta(get_current_user_id(), self::$plugin_prefix . '-notice-dismissed', true) != self::plugin_version() 408 ) { 409 410 ?> 411 412 <div class="notice notice-info is-dismissible <?php echo esc_attr(self::$plugin_prefix); ?>-notice"> 413 414 <p style="font-size:15px;"><strong><?php 415 /* translators: name of the plugin */ 416 printf(esc_html(__('Thank you for using %s plugin', 'options-for-twenty-twenty-one')), esc_html(self::$plugin_name)); ?></strong></p> 389 417 <?php 390 418 391 419 if (self::$plugin_trial == true) { 392 420 393 _e('Would you like to try even more features? Download your 7 day free trial now!', self::$plugin_text_domain); 421 ?> 422 423 <p><?php echo esc_html(__('Would you like to try even more features? Download your 7 day free trial now!', 'options-for-twenty-twenty-one')); ?></p> 424 <?php 394 425 395 426 } else { 396 427 397 echo sprintf(__('Upgrade now to %s Premium to enable more options and features and contribute to the further development of this plugin.', self::$plugin_text_domain), self::$plugin_name); 428 ?> 429 430 <p> 431 <?php 432 /* translators: name of the plugin */ 433 echo esc_html(sprintf(__('Upgrade now to %s Premium to enable more options and features and contribute to the further development of this plugin.', 'options-for-twenty-twenty-one'), self::$plugin_name)); ?> 434 </p> 435 <?php 398 436 399 437 } 400 438 401 ?> </p>402 403 <p><?php439 ?> 440 441 <p><?php 404 442 405 443 if (self::$plugin_trial == true) { … … 407 445 ?> 408 446 409 <a href="<?php echo esc_url(self::premium_link()); ?>" title="<?php echo esc_attr(sprintf(__('Try %s Premium', self::$plugin_text_domain), self::$plugin_name)); ?>" class="button-primary"><?php printf(__('Trial %s Premium for 7 days', self::$plugin_text_domain), self::$plugin_name); ?></a> 410 447 <a href="<?php echo esc_url(self::premium_link()); ?>" 448 title="<?php 449 /* translators: name of the plugin */ 450 echo esc_attr(sprintf(__('Try %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name)); ?>" 451 class="button-secondary"> 452 <?php echo esc_html(__('Try premium plugin free for 7 days', 'options-for-twenty-twenty-one')); ?> 453 </a> 411 454 <?php 412 455 … … 414 457 415 458 ?> 416 <a href="<?php echo esc_url(self::upgrade_link()); ?>" title="<?php echo esc_attr(sprintf(__('Upgrade now to %s Premium', self::$plugin_text_domain), self::$plugin_name)); ?>" class="button-primary"><?php printf(__('Upgrade now to %s Premium', self::$plugin_text_domain), self::$plugin_name); ?></a></p> 459 460 <a href="<?php echo esc_url(self::upgrade_link()); ?>" 461 title="<?php 462 /* translators: name of the plugin */ 463 echo esc_attr(sprintf(__('Upgrade now to %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name)); ?>" 464 class="button-primary"> 465 <?php echo esc_html(__('Upgrade now to premium plugin', 'options-for-twenty-twenty-one')); ?> 466 </a> 467 468 </p> 469 470 <hr style="margin:12px 0;"> 471 472 <p> 473 <strong>✨ Need help with your WordPress site?</strong> 474 🚀 Slow, want new features, or need a glow-up? 475 <a href="https://webd.uk/services/?utm_campaign=notice&utm_term=options-for-twenty-twenty-one" class="button-secondary" style="margin-left:6px; vertical-align: middle;">Explore our services</a> 476 </p> 417 477 418 478 </div> 419 479 420 480 <script type="text/javascript"> 421 jQuery(document).on('click', '.<?php echo self::$plugin_prefix; ?>-notice .notice-dismiss', function() {481 jQuery(document).on('click', '.<?php echo esc_attr(self::$plugin_prefix); ?>-notice .notice-dismiss', function() { 422 482 jQuery.ajax({ 423 483 url: ajaxurl, 424 484 data: { 425 action: 'dismiss_<?php echo self::$plugin_prefix; ?>_notice_handler',426 _ajax_nonce: '<?php echo wp_create_nonce(self::$plugin_prefix . '-ajax-nonce'); ?>'485 action: 'dismiss_<?php echo esc_attr(self::$plugin_prefix); ?>_notice_handler', 486 _ajax_nonce: '<?php echo esc_attr(wp_create_nonce(self::$plugin_prefix . '-ajax-nonce')); ?>' 427 487 } 428 488 }); … … 434 494 } 435 495 436 } elseif (time() > (strtotime('+1 hour', filectime(__DIR__))) && get_user_meta(get_current_user_id(), self::$plugin_prefix . '-notice-dismissed', true) != self::plugin_version() && !get_option(self::$plugin_prefix . '_donated')) { 437 438 ?> 439 440 <div class="notice notice-info is-dismissible <?php echo self::$plugin_prefix; ?>-notice"> 441 <p><strong><?php printf(__('Thank you for using %s plugin', self::$plugin_text_domain), self::$plugin_name); ?></strong></p> 442 <?php 443 496 } elseif ( 497 time() > (strtotime('+1 hour', filectime(__DIR__))) && 498 get_user_meta(get_current_user_id(), self::$plugin_prefix . '-notice-dismissed', true) != self::plugin_version() && 499 !get_option(self::$plugin_prefix . '_donated') 500 ) { 501 502 ?> 503 504 <div class="notice notice-info is-dismissible <?php echo esc_attr(self::$plugin_prefix); ?>-notice"> 505 <p><strong><?php 506 /* translators: name of the plugin */ 507 printf(esc_html(__('Thank you for using %s plugin', 'options-for-twenty-twenty-one')), esc_html(self::$plugin_name)); ?></strong></p> 508 <?php 509 510 // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound 444 511 do_action(self::$plugin_prefix . '_admin_notice_donate'); 445 512 446 513 ?> 447 <p><?php esc_html_e('Funding plugins like this one with small financial contributions is essential to pay the developers to continue to do what they do. Please take a moment to give a small amount ...', self::$plugin_text_domain); ?></p> 448 <p><a href="<?php echo esc_url(self::upgrade_link()); ?>" title="<?php echo esc_attr(sprintf(__('Contribute to %s', self::$plugin_text_domain), self::$plugin_name)); ?>" class="button-primary"><?php printf(__('Contribute to %s', self::$plugin_text_domain), self::$plugin_name); ?></a> <a href="#" id="<?php echo self::$plugin_prefix; ?>-already-paid" title="<?php echo esc_attr(__('Aleady Contributed!', self::$plugin_text_domain)); ?>" class="button-primary"><?php esc_html_e('Aleady Contributed!', self::$plugin_text_domain); ?></a></p> 514 <p><?php esc_html_e('Funding plugins like this one with small financial contributions is essential to pay the developers to continue to do what they do. Please take a moment to give a small amount ...', 'options-for-twenty-twenty-one'); ?></p> 515 <p><a href="<?php echo esc_url(self::upgrade_link()); ?>" title="<?php 516 /* translators: name of the plugin */ 517 echo esc_attr(sprintf(__('Contribute to %s', 'options-for-twenty-twenty-one'), self::$plugin_name)); ?>" class="button-primary"><?php printf(esc_html(__('Contribute to %s', 'options-for-twenty-twenty-one')), esc_html(self::$plugin_name)); ?></a> <a href="#" id="<?php echo esc_attr(self::$plugin_prefix); ?>-already-paid" title="<?php echo esc_attr(__('Aleady Contributed!', 'options-for-twenty-twenty-one')); ?>" class="button-primary"><?php esc_html_e('Aleady Contributed!', 'options-for-twenty-twenty-one'); ?></a></p> 449 518 </div> 450 519 451 520 <script type="text/javascript"> 452 jQuery(document).on('click', '#<?php echo self::$plugin_prefix; ?>-already-paid', function() {453 if (confirm(<?php echo json_encode(__('Have you really? Press "Cancel" if you forgot to 🙂', self::$plugin_text_domain)); ?>)) {454 alert(<?php echo json_encode(__('Thank you!', self::$plugin_text_domain)); ?>);455 jQuery('.<?php echo self::$plugin_prefix; ?>-notice').fadeTo(100, 0, function() {456 jQuery('.<?php echo self::$plugin_prefix; ?>-notice').slideUp(100, function() {457 jQuery('.<?php echo self::$plugin_prefix; ?>-notice').remove()521 jQuery(document).on('click', '#<?php echo esc_attr(self::$plugin_prefix); ?>-already-paid', function() { 522 if (confirm(<?php echo json_encode(__('Have you really? Press "Cancel" if you forgot to 🙂', 'options-for-twenty-twenty-one')); ?>)) { 523 alert(<?php echo json_encode(__('Thank you!', 'options-for-twenty-twenty-one')); ?>); 524 jQuery('.<?php echo esc_attr(self::$plugin_prefix); ?>-notice').fadeTo(100, 0, function() { 525 jQuery('.<?php echo esc_attr(self::$plugin_prefix); ?>-notice').slideUp(100, function() { 526 jQuery('.<?php echo esc_attr(self::$plugin_prefix); ?>-notice').remove() 458 527 }); 459 528 }); … … 461 530 url: ajaxurl, 462 531 data: { 463 action: 'dismiss_<?php echo self::$plugin_prefix; ?>_notice_handler',532 action: 'dismiss_<?php echo esc_attr(self::$plugin_prefix); ?>_notice_handler', 464 533 donated: 'true', 465 _ajax_nonce: '<?php echo wp_create_nonce(self::$plugin_prefix . '-ajax-nonce'); ?>'534 _ajax_nonce: '<?php echo esc_attr(wp_create_nonce(self::$plugin_prefix . '-ajax-nonce')); ?>' 466 535 } 467 536 }); 468 537 } else { 469 window.location.assign('<?php echo self::upgrade_link(); ?>');538 window.location.assign('<?php echo esc_url(self::upgrade_link()); ?>'); 470 539 } 471 540 }); 472 jQuery(document).on('click', '.<?php echo self::$plugin_prefix; ?>-notice .notice-dismiss', function() {541 jQuery(document).on('click', '.<?php echo esc_attr(self::$plugin_prefix); ?>-notice .notice-dismiss', function() { 473 542 jQuery.ajax({ 474 543 url: ajaxurl, 475 544 data: { 476 action: 'dismiss_<?php echo self::$plugin_prefix; ?>_notice_handler',477 _ajax_nonce: '<?php echo wp_create_nonce(self::$plugin_prefix . '-ajax-nonce'); ?>'545 action: 'dismiss_<?php echo esc_attr(self::$plugin_prefix); ?>_notice_handler', 546 _ajax_nonce: '<?php echo esc_attr(wp_create_nonce(self::$plugin_prefix . '-ajax-nonce')); ?>' 478 547 } 479 548 }); … … 509 578 is_admin() && 510 579 $pagenow === 'customize.php' && 511 isset($_GET['theme']) && 512 !in_array($_GET['theme'], $themes, true) 580 isset($_GET['theme']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 581 !in_array($_GET['theme'], $themes, true) // phpcs:ignore WordPress.Security.NonceVerification.Recommended 513 582 ) && !( 514 583 !is_admin() && 515 584 $pagenow === 'index.php' && 516 isset($_GET['customize_theme']) && 517 isset($_GET['customize_changeset_uuid']) && 518 !in_array($_GET['customize_theme'], $themes, true) 585 isset($_GET['customize_theme']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 586 isset($_GET['customize_changeset_uuid']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 587 !in_array($_GET['customize_theme'], $themes, true) // phpcs:ignore WordPress.Security.NonceVerification.Recommended 519 588 ) 520 589 ) { … … 530 599 is_admin() && 531 600 $pagenow === 'customize.php' && 532 isset($_GET['theme']) && 533 in_array($_GET['theme'], $themes, true) 601 isset($_GET['theme']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 602 in_array($_GET['theme'], $themes, true) // phpcs:ignore WordPress.Security.NonceVerification.Recommended 534 603 ) || ( 535 604 !is_admin() && 536 605 $pagenow === 'index.php' && 537 isset($_GET['customize_theme']) && 538 isset($_GET['customize_changeset_uuid']) && 539 in_array($_GET['customize_theme'], $themes, true) 606 isset($_GET['customize_theme']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 607 isset($_GET['customize_changeset_uuid']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 608 in_array($_GET['customize_theme'], $themes, true) // phpcs:ignore WordPress.Security.NonceVerification.Recommended 540 609 )) 541 610 ) { … … 549 618 !is_admin() && 550 619 $pagenow === 'index.php' && 551 isset($_GET['customize_theme']) && 552 isset($_GET['customize_changeset_uuid']) 620 isset($_GET['customize_theme']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 621 isset($_GET['customize_changeset_uuid']) // phpcs:ignore WordPress.Security.NonceVerification.Recommended 553 622 554 623 ) { 555 624 556 $child = wp_get_theme( $_GET['customize_theme']);625 $child = wp_get_theme(sanitize_file_name(wp_unslash($_GET['customize_theme']))); // phpcs:ignore WordPress.Security.NonceVerification.Recommended 557 626 558 627 if (isset($child->template) && in_array($child->template, $themes, true)) { … … 568 637 is_admin() && 569 638 ($pagenow === 'customize.php' || $pagenow === 'admin-ajax.php') && 570 isset($_GET['theme']) || (isset($_POST['customize_theme']) && isset($_POST['customize_changeset_uuid'])) 639 ( 640 isset($_GET['theme']) || // phpcs:ignore WordPress.Security.NonceVerification.Recommended 641 ( 642 isset($_POST['customize_theme']) && // phpcs:ignore WordPress.Security.NonceVerification.Missing 643 isset($_POST['customize_changeset_uuid']) // phpcs:ignore WordPress.Security.NonceVerification.Missing 644 ) 645 ) 571 646 ) { 572 647 573 if (isset($_GET['theme'])) { 574 575 $child = wp_get_theme( $_GET['theme']);648 if (isset($_GET['theme'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended 649 650 $child = wp_get_theme(sanitize_file_name(wp_unslash($_GET['theme']))); // phpcs:ignore WordPress.Security.NonceVerification.Recommended 576 651 577 652 } else { 578 653 579 $child = wp_get_theme( $_POST['customize_theme']);654 $child = wp_get_theme(sanitize_file_name(wp_unslash($_POST['customize_theme']))); // phpcs:ignore WordPress.Security.NonceVerification.Missing 580 655 581 656 } … … 622 697 623 698 ?> 624 <span class="description customize-control-description"><?php echo $this->description; ?></span>699 <span class="description customize-control-description"><?php echo esc_html($this->description); ?></span> 625 700 <?php 626 701 … … 647 722 ?> 648 723 </ul> 649 <input type="hidden" id="_customize-input-<?php echo $this->id; ?>" <?php $this->link(); ?> value="<?php echo esc_attr(implode(',', $multi_values)); ?>" />724 <input type="hidden" id="_customize-input-<?php echo esc_attr($this->id); ?>" <?php $this->link(); ?> value="<?php echo esc_attr(implode(',', $multi_values)); ?>" /> 650 725 <?php 651 726 -
options-for-twenty-twenty-one/tags/1.7.9/options-for-twenty-twenty-one.php
r3180355 r3418400 2 2 /* 3 3 * Plugin Name: Options for Twenty Twenty-One 4 * Version: 1.7. 84 * Version: 1.7.9 5 5 * Plugin URI: https://webd.uk/product/options-for-twenty-twenty-one-upgrade/ 6 6 * Description: Adds powerful customizer options to modify all aspects of the default Wordpress theme Twenty Twenty-One 7 7 * Author: Webd Ltd 8 8 * Author URI: https://webd.uk 9 * License: GPLv2 or later 10 * License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html 9 11 * Text Domain: options-for-twenty-twenty-one 10 12 */ … … 22 24 class options_for_twenty_twenty_one_class { 23 25 24 public static $version = '1.7. 8';26 public static $version = '1.7.9'; 25 27 26 28 function __construct() { … … 1413 1415 $wp_customize->add_control('inject_breadcrumbs', array( 1414 1416 'label' => __('Inject Breadcrumbs', 'options-for-twenty-twenty-one'), 1415 'description' => sprintf(wp_kses(__('Inject <a href="%s">Yoast SEO</a> or <a href="%s">Breadcrumb NavXT</a> breadcrumbs above page content.', 'options-for-twenty-twenty-one'), array('a' => array('href' => array()))), esc_url(admin_url('plugin-install.php?s=wordpress-seo&tab=search&type=term')), esc_url(admin_url('plugin-install.php?s=breadcrumb-navxt&tab=search&type=term'))), 1417 /* translators: links to plugin installer */ 1418 'description' => sprintf(wp_kses(__('Inject <a href="%1$s">Yoast SEO</a> or <a href="%2$s">Breadcrumb NavXT</a> breadcrumbs above page content.', 'options-for-twenty-twenty-one'), array('a' => array('href' => array()))), esc_url(admin_url('plugin-install.php?s=wordpress-seo&tab=search&type=term')), esc_url(admin_url('plugin-install.php?s=breadcrumb-navxt&tab=search&type=term'))), 1416 1419 'section' => 'oftto_content', 1417 1420 'settings' => 'inject_breadcrumbs', … … 2675 2678 @media only screen and (min-width: 482px) { 2676 2679 :root { 2677 --responsive--aligndefault-width: min(calc(100vw - 4 * var(--global--spacing-horizontal)), <?php echo $mod; ?>px);2680 --responsive--aligndefault-width: min(calc(100vw - 4 * var(--global--spacing-horizontal)), <?php echo wp_kses($mod, 'strip'); ?>px); 2678 2681 } 2679 2682 } 2680 2683 @media only screen and (min-width: 822px) { 2681 2684 :root { 2682 --responsive--aligndefault-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), <?php echo $mod; ?>px);2685 --responsive--aligndefault-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), <?php echo wp_kses($mod, 'strip'); ?>px); 2683 2686 } 2684 2687 } … … 2709 2712 } 2710 2713 }<?php if (($mod + 200) > 822) { ?> 2711 @media only screen and (min-width: 822px) and (max-width: <?php echo $mod + 200; ?>px) {2714 @media only screen and (min-width: 822px) and (max-width: <?php echo wp_kses($mod + 200, 'strip'); ?>px) { 2712 2715 .post-thumbnail, 2713 2716 .entry-content .wp-audio-shortcode, … … 2735 2738 } 2736 2739 }<?php } ?> 2737 @media only screen and (min-width: <?php echo $mod + 201; ?>px) {2740 @media only screen and (min-width: <?php echo wp_kses($mod + 201, 'strip'); ?>px) { 2738 2741 .post-thumbnail, 2739 2742 .entry-content .wp-audio-shortcode, … … 2747 2750 .author-bio, 2748 2751 .search-form { 2749 max-width: <?php echo $mod; ?>px;2752 max-width: <?php echo wp_kses($mod, 'strip'); ?>px; 2750 2753 } 2751 2754 .author-bio.show-avatars .author-bio-content { 2752 max-width: <?php echo $mod -90; ?>px;2755 max-width: <?php echo wp_kses($mod - 90, 'strip'); ?>px; 2753 2756 } 2754 2757 .entry-content > .alignleft, 2755 2758 .entry-content > .alignright { 2756 margin-right: calc(0.5 * (100vw - <?php echo $mod; ?>px));2759 margin-right: calc(0.5 * (100vw - <?php echo wp_kses($mod, 'strip'); ?>px)); 2757 2760 } 2758 2761 .entry-content > .alignleft, 2759 2762 .entry-content > .alignright { 2760 max-width: calc(0.5 * <?php echo $mod; ?>px);2763 max-width: calc(0.5 * <?php echo wp_kses($mod, 'strip'); ?>px); 2761 2764 } 2762 2765 } … … 2807 2810 @media only screen and (min-width: 822px) { 2808 2811 :root { 2809 --responsive--alignwide-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), <?php echo $mod; ?>px);2812 --responsive--alignwide-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), <?php echo wp_kses($mod, 'strip'); ?>px); 2810 2813 } 2811 2814 } 2812 @media only screen and (min-width: 822px) and (max-width: <?php echo $mod + 200; ?>px) {2815 @media only screen and (min-width: 822px) and (max-width: <?php echo wp_kses($mod + 200, 'strip'); ?>px) { 2813 2816 .widget-area, 2814 2817 .pagination, … … 2835 2838 } 2836 2839 } 2837 @media only screen and (min-width: <?php echo $mod + 201; ?>px) {2840 @media only screen and (min-width: <?php echo wp_kses($mod + 201, 'strip'); ?>px) { 2838 2841 .widget-area, 2839 2842 .pagination, … … 2847 2850 .wp-block-pullquote.alignwide blockquote, 2848 2851 hr.wp-block-separator:not(.is-style-dots).alignwide { 2849 max-width: <?php echo $mod; ?>px;2852 max-width: <?php echo wp_kses($mod, 'strip'); ?>px; 2850 2853 } 2851 2854 .entry-header .post-thumbnail, … … 2857 2860 .alignfull [class*=inner-container] > .alignwide, 2858 2861 .alignwide [class*=inner-container] > .alignwide { 2859 width: <?php echo $mod; ?>px;2862 width: <?php echo wp_kses($mod, 'strip'); ?>px; 2860 2863 } 2861 2864 } … … 2872 2875 ?> 2873 2876 .woocommerce .content-area { 2874 max-width: var(--responsive--align<?php echo $mod; ?>-width);2877 max-width: var(--responsive--align<?php echo wp_kses($mod, 'strip'); ?>-width); 2875 2878 margin-left: auto; 2876 2879 margin-right: auto; … … 2923 2926 2924 2927 ?> 2925 @media (min-width: <?php echo $alignwide_max_width; ?>px) {2926 .<?php echo $taxonomy; ?> .page-header {2928 @media (min-width: <?php echo wp_kses($alignwide_max_width, 'strip'); ?>px) { 2929 .<?php echo wp_kses($taxonomy, 'strip'); ?> .page-header { 2927 2930 max-width: none; 2928 2931 } 2929 2932 } 2930 .<?php echo $taxonomy; ?> .search-result-count {2933 .<?php echo wp_kses($taxonomy, 'strip'); ?> .search-result-count { 2931 2934 max-width: none; 2932 2935 } 2933 .<?php echo $taxonomy; ?> .site-main {2936 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main { 2934 2937 display: flex; 2935 2938 flex-wrap: wrap; … … 2939 2942 } 2940 2943 @media (min-width: 482px) { 2941 .<?php echo $taxonomy; ?> .site-main {2944 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main { 2942 2945 padding-left: 1rem; 2943 2946 padding-right: 1rem; 2944 2947 } 2945 2948 } 2946 .<?php echo $taxonomy; ?> .site-main>* {2949 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>* { 2947 2950 padding: 1rem; 2948 2951 width: 100%; 2949 2952 } 2950 .<?php echo $taxonomy; ?> .site-main>article {2953 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article { 2951 2954 margin: 0; 2952 2955 } 2953 2956 @media (min-width: 482px) { 2954 .<?php echo $taxonomy; ?> .site-main>article {2957 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article { 2955 2958 width: 50%; 2956 2959 } 2957 2960 } 2958 2961 @media (min-width: 822px) { 2959 .<?php echo $taxonomy; ?> .site-main>article {2962 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article { 2960 2963 width: 25%; 2961 2964 } 2962 2965 } 2963 .<?php echo $taxonomy; ?> .site-main>article>.entry-header {2966 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header { 2964 2967 width: 100%; 2965 2968 position: relative; 2966 2969 margin: 0; 2967 2970 } 2968 .<?php echo $taxonomy; ?> .site-main>article:not(.has-post-thumbnail)>.entry-header {2971 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article:not(.has-post-thumbnail)>.entry-header { 2969 2972 border: 1px solid #28303d; 2970 2973 } 2971 .<?php echo $taxonomy; ?> .site-main>article>.entry-header::after {2974 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header::after { 2972 2975 display: block; 2973 2976 content: ''; 2974 2977 padding-bottom: 65%; 2975 2978 } 2976 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.entry-title {2979 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.entry-title { 2977 2980 position: absolute; 2978 2981 z-index: 2; … … 2982 2985 } 2983 2986 @media (max-width: 482px) { 2984 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.entry-title {2987 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.entry-title { 2985 2988 font-size: 8vw; 2986 2989 } 2987 2990 } 2988 2991 @media (min-width: 482px) and (max-width: 821px) { 2989 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.entry-title {2992 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.entry-title { 2990 2993 font-size: 4vw; 2991 2994 } 2992 2995 } 2993 2996 @media (min-width: 822px) { 2994 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.entry-title {2997 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.entry-title { 2995 2998 font-size: 2vw; 2996 2999 } 2997 3000 } 2998 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.entry-title>a {3001 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.entry-title>a { 2999 3002 display: flex; 3000 3003 justify-content: center; … … 3006 3009 font-weight: 900; 3007 3010 } 3008 .<?php echo $taxonomy; ?> .site-main>article.has-post-thumbnail>.entry-header>.entry-title>a {3011 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article.has-post-thumbnail>.entry-header>.entry-title>a { 3009 3012 text-shadow: -1px -1px 0 var(--global--color-background), 1px -1px 0 var(--global--color-background), -1px 1px 0 var(--global--color-background), 1px 1px 0 var(--global--color-background); 3010 3013 } 3011 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.post-thumbnail {3014 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.post-thumbnail { 3012 3015 margin: 0; 3013 3016 } 3014 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.post-thumbnail img {3017 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.post-thumbnail img { 3015 3018 position: absolute; 3016 3019 width: 100% !important; … … 3021 3024 z-index: 1; 3022 3025 } 3023 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.post-thumbnail figcaption,3024 .<?php echo $taxonomy; ?> .site-main>article>.entry-footer,3025 .<?php echo $taxonomy; ?> .site-main>article>.entry-content {3026 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.post-thumbnail figcaption, 3027 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-footer, 3028 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-content { 3026 3029 display: none; 3027 3030 } 3028 .<?php echo $taxonomy; ?> .pagination {3031 .<?php echo wp_kses($taxonomy, 'strip'); ?> .pagination { 3029 3032 padding: 0; 3030 3033 max-width: none; 3031 3034 border: none; 3032 3035 } 3033 .<?php echo $taxonomy; ?> .pagination .nav-links {3036 .<?php echo wp_kses($taxonomy, 'strip'); ?> .pagination .nav-links { 3034 3037 padding: 1rem; 3035 3038 border-top: 3px solid var(--global--color-border); … … 3049 3052 ?> 3050 3053 <?php echo (get_theme_mod('site_wide_header_height') ? '' : '.home '); ?>#masthead { 3051 min-height: <?php echo $mod; ?>vh;3054 min-height: <?php echo wp_kses($mod, 'strip'); ?>vh; 3052 3055 } 3053 3056 <?php echo (get_theme_mod('site_wide_header_height') ? '' : '.home'); ?>.admin-bar #masthead { 3054 min-height: calc(<?php echo $mod; ?>vh - 32px);3057 min-height: calc(<?php echo wp_kses($mod, 'strip'); ?>vh - 32px); 3055 3058 } 3056 3059 @media screen and (max-width: 782px) { 3057 3060 <?php echo (get_theme_mod('site_wide_header_height') ? '' : '.home'); ?>.admin-bar #masthead { 3058 min-height: calc(<?php echo $mod; ?>vh - 46px);3061 min-height: calc(<?php echo wp_kses($mod, 'strip'); ?>vh - 46px); 3059 3062 } 3060 3063 } … … 3103 3106 ?> 3104 3107 #masthead-wrapper {<?php if ($header_color) { ?> 3105 background-color: <?php echo $header_color; ?>;<?php } if ($header_image) { ?>3106 background-image: url("<?php echo (wp_get_attachment_image_src($header_image, 'full') ? wp_get_attachment_image_src($header_image, 'full')[0] : ''); ?>");<?php } ?>3108 background-color: <?php echo wp_kses($header_color, 'strip'); ?>;<?php } if ($header_image) { ?> 3109 background-image: url("<?php echo esc_url(wp_get_attachment_image_src($header_image, 'full') ? wp_get_attachment_image_src($header_image, 'full')[0] : ''); ?>");<?php } ?> 3107 3110 background-size: cover; 3108 3111 background-repeat: no-repeat;<?php if (get_theme_mod('fix_header_background_image')) { ?> … … 3126 3129 ?> 3127 3130 .site-header { 3128 padding-top: <?php echo ($this->oftto_are_title_and_tagline_displayed() ? round($mod * 22.5 / 72, 1) . 'px' : '74px'); ?>;3131 padding-top: <?php echo wp_kses(($this->oftto_are_title_and_tagline_displayed() ? round($mod * 22.5 / 72, 1) . 'px' : '74px'), 'strip'); ?>; 3129 3132 } 3130 3133 @media only screen and (min-width: 482px) { 3131 3134 .site-header { 3132 padding-top: <?php echo round($mod * 40 / 72, 1); ?>px;3135 padding-top: <?php echo wp_kses(round($mod * 40 / 72, 1), 'strip'); ?>px; 3133 3136 } 3134 3137 } 3135 3138 @media only screen and (min-width: 822px) { 3136 3139 .site-header { 3137 padding-top: <?php echo $mod; ?>px;3140 padding-top: <?php echo wp_kses($mod, 'strip'); ?>px; 3138 3141 } 3139 3142 } … … 3149 3152 ?> 3150 3153 .site-header { 3151 padding-bottom: <?php echo round($mod * 60 / 90, 1); ?>px;3154 padding-bottom: <?php echo wp_kses(round($mod * 60 / 90, 1), 'strip'); ?>px; 3152 3155 } 3153 3156 @media only screen and (min-width: 482px) { 3154 3157 .site-header { 3155 padding-bottom: <?php echo round($mod * 40 / 90, 1); ?>px;3158 padding-bottom: <?php echo wp_kses(round($mod * 40 / 90, 1), 'strip'); ?>px; 3156 3159 } 3157 3160 } 3158 3161 @media only screen and (min-width: 822px) { 3159 3162 .site-header { 3160 padding-bottom: <?php echo $mod; ?>px;3163 padding-bottom: <?php echo wp_kses($mod, 'strip'); ?>px; 3161 3164 } 3162 3165 } … … 3192 3195 ?> 3193 3196 .site-header .site-logo .custom-logo { 3194 max-width: <?php echo $mod; ?>px;3197 max-width: <?php echo wp_kses($mod, 'strip'); ?>px; 3195 3198 max-height: none; 3196 3199 width: 100%; … … 3214 3217 3215 3218 ?> 3216 @media screen and (max-width: <?php echo $mobile_breakpoint; ?>px) {3219 @media screen and (max-width: <?php echo wp_kses($mobile_breakpoint, 'strip'); ?>px) { 3217 3220 .site-branding, .site-header:not(.has-logo).has-title-and-tagline .site-branding { 3218 3221 width: 100%; … … 3225 3228 3226 3229 ?> 3227 @media screen and (min-width: <?php echo $mobile_breakpoint + 1; ?>px) {3230 @media screen and (min-width: <?php echo wp_kses($mobile_breakpoint + 1, 'strip'); ?>px) { 3228 3231 .site-branding, .site-header:not(.has-logo).has-title-and-tagline .site-branding { 3229 3232 width: 100%; … … 3253 3256 ?> 3254 3257 .site-title { 3255 font-size: <?php echo $mod / 1000; ?>rem;3258 font-size: <?php echo wp_kses($mod / 1000, 'strip'); ?>rem; 3256 3259 } 3257 3260 <?php … … 3385 3388 } 3386 3389 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3390 if (get_theme_mod('mobile_submenus_on_desktop')) { 3399 3391 … … 3409 3401 3410 3402 ?> 3411 @media only screen and (min-width: 481px) and (max-width: <?php echo $mobile_breakpoint; ?>px) {3403 @media only screen and (min-width: 481px) and (max-width: <?php echo wp_kses($mobile_breakpoint, 'strip'); ?>px) { 3412 3404 <?php 3413 3405 … … 3541 3533 if ($mod) { 3542 3534 ?> 3543 @media only screen and (max-width: <?php echo $mobile_breakpoint; ?>px) {3535 @media only screen and (max-width: <?php echo wp_kses($mobile_breakpoint, 'strip'); ?>px) { 3544 3536 <?php 3545 3537 … … 3588 3580 if ($mod) { 3589 3581 ?> 3590 @media only screen and (min-width: <?php echo $mobile_breakpoint + 1; ?>px) {3582 @media only screen and (min-width: <?php echo wp_kses($mobile_breakpoint + 1, 'strip'); ?>px) { 3591 3583 <?php 3592 3584 … … 3641 3633 ?> 3642 3634 .primary-navigation > .primary-menu-container, .primary-navigation-open .primary-navigation > .primary-menu-container { 3643 border-width: <?php echo $mod; ?>px;3635 border-width: <?php echo wp_kses($mod, 'strip'); ?>px; 3644 3636 } 3645 3637 <?php … … 3655 3647 3656 3648 ?> 3657 @media only screen and (min-width: <?php echo $mobile_breakpoint + 1; ?>px) {3649 @media only screen and (min-width: <?php echo wp_kses($mobile_breakpoint + 1, 'strip'); ?>px) { 3658 3650 .primary-navigation { 3659 padding: <?php echo $mod; ?>px 0;3651 padding: <?php echo wp_kses($mod, 'strip'); ?>px 0; 3660 3652 } 3661 3653 } … … 3682 3674 @media only screen and (max-width: 481px) { 3683 3675 .menu-button-container .button.button .dropdown-icon.open .svg-icon { 3684 width: <?php echo $mod; ?>px;3685 height: <?php echo $mod; ?>px;3676 width: <?php echo wp_kses($mod, 'strip'); ?>px; 3677 height: <?php echo wp_kses($mod, 'strip'); ?>px; 3686 3678 } 3687 3679 } … … 3695 3687 @media only screen and (min-width: 482px) { 3696 3688 .menu-button-container .button.button .dropdown-icon.open .svg-icon { 3697 width: <?php echo (($mod - 24) / 2) + 24; ?>px;3698 height: <?php echo (($mod - 24) / 2) + 24; ?>px;3689 width: <?php echo wp_kses((($mod - 24) / 2) + 24, 'strip'); ?>px; 3690 height: <?php echo wp_kses((($mod - 24) / 2) + 24, 'strip'); ?>px; 3699 3691 } 3700 3692 } 3701 3693 @media only screen and (min-width: 822px) { 3702 3694 .menu-button-container .button.button .dropdown-icon.open .svg-icon { 3703 width: <?php echo $mod; ?>px;3704 height: <?php echo $mod; ?>px;3695 width: <?php echo wp_kses($mod, 'strip'); ?>px; 3696 height: <?php echo wp_kses($mod, 'strip'); ?>px; 3705 3697 } 3706 3698 } … … 3728 3720 @media only screen and (max-width: 481px) { 3729 3721 .primary-navigation a:link, .primary-navigation a:visited { 3730 color: <?php echo $mod; ?>;3722 color: <?php echo wp_kses($mod, 'strip'); ?>; 3731 3723 } 3732 3724 } … … 3740 3732 @media only screen and (max-width: 481px) { 3741 3733 .primary-navigation a:hover { 3742 color: <?php echo $mod; ?>;3734 color: <?php echo wp_kses($mod, 'strip'); ?>; 3743 3735 } 3744 3736 } … … 3753 3745 3754 3746 ?> 3755 @media only screen and (min-width: <?php echo $mobile_breakpoint + 1; ?>px) {3747 @media only screen and (min-width: <?php echo wp_kses($mobile_breakpoint + 1, 'strip'); ?>px) { 3756 3748 .primary-navigation .primary-menu-container > ul > .menu-item > a { 3757 padding: <?php echo $size / 1000 * 0.75; ?>rem;3758 font-size: <?php echo $size / 1000; ?>rem;3759 line-height: <?php echo $size / 1000; ?>rem;3749 padding: <?php echo wp_kses($size / 1000 * 0.75, 'strip'); ?>rem; 3750 font-size: <?php echo wp_kses($size / 1000, 'strip'); ?>rem; 3751 line-height: <?php echo wp_kses($size / 1000, 'strip'); ?>rem; 3760 3752 } 3761 3753 .primary-navigation .primary-menu-container > ul > #menu-item-search > .svg-icon { 3762 width: <?php echo $size / 1000; ?>rem;3763 height: <?php echo $size / 1000; ?>rem;3754 width: <?php echo wp_kses($size / 1000, 'strip'); ?>rem; 3755 height: <?php echo wp_kses($size / 1000, 'strip'); ?>rem; 3764 3756 } 3765 3757 .primary-navigation > div > .menu-wrapper .sub-menu-toggle { 3766 height: <?php echo $size / 1000 * 2.5; ?>rem;3758 height: <?php echo wp_kses($size / 1000 * 2.5, 'strip'); ?>rem; 3767 3759 } 3768 3760 .primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-plus svg, .primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-minus svg { 3769 height: <?php echo $size / 1000; ?>rem;3770 width: <?php echo $size / 1000; ?>rem;3761 height: <?php echo wp_kses($size / 1000, 'strip'); ?>rem; 3762 width: <?php echo wp_kses($size / 1000, 'strip'); ?>rem; 3771 3763 margin-top: 0; 3772 margin-right: <?php echo $size / 1000 * 0.15; ?>rem;3764 margin-right: <?php echo wp_kses($size / 1000 * 0.15, 'strip'); ?>rem; 3773 3765 } 3774 3766 .primary-navigation > div > .menu-wrapper .sub-menu-toggle { 3775 width: <?php echo $size / 1000 * 2; ?>rem;3767 width: <?php echo wp_kses($size / 1000 * 2, 'strip'); ?>rem; 3776 3768 } 3777 3769 } … … 3788 3780 3789 3781 ?> 3790 @media only screen and (min-width: <?php echo $mobile_breakpoint + 1; ?>px) {3782 @media only screen and (min-width: <?php echo wp_kses($mobile_breakpoint + 1, 'strip'); ?>px) { 3791 3783 .primary-navigation .primary-menu-container > ul > .menu-item > a { 3792 padding-left: <?php echo round($size * $mod, 2); ?>rem;3793 padding-right: <?php echo round($size * $mod, 2); ?>rem;3784 padding-left: <?php echo wp_kses(round($size * $mod, 2), 'strip'); ?>rem; 3785 padding-right: <?php echo wp_kses(round($size * $mod, 2), 'strip'); ?>rem; 3794 3786 } 3795 3787 } … … 3805 3797 ?> 3806 3798 .primary-navigation .sub-menu { 3807 border-color: <? = $mod; ?>;3799 border-color: <?php echo wp_kses($mod, 'strip'); ?>; 3808 3800 } 3809 3801 @media only screen and (min-width: 482px) { 3810 3802 .primary-navigation > div > .menu-wrapper > li > .sub-menu:before, 3811 3803 .primary-navigation > div > .menu-wrapper > li > .sub-menu:after { 3812 border-color: <? = $mod; ?> transparent;3804 border-color: <?php echo wp_kses($mod, 'strip'); ?> transparent; 3813 3805 } 3814 3806 } … … 3824 3816 @media only screen and (min-width: 482px) { 3825 3817 .primary-navigation > div > .menu-wrapper > li > .sub-menu:after { 3826 border-bottom-color: <?php echo $mod; ?>;3818 border-bottom-color: <?php echo wp_kses($mod, 'strip'); ?>; 3827 3819 } 3828 3820 .primary-navigation > div > .menu-wrapper > li > .sub-menu, .primary-navigation > div > .menu-wrapper > li > .sub-menu li { 3829 background-color: <?php echo $mod; ?>;3821 background-color: <?php echo wp_kses($mod, 'strip'); ?>; 3830 3822 } 3831 3823 } … … 3837 3829 if ($mod) { 3838 3830 ?> 3839 @media only screen and (min-width: <?php echo $mobile_breakpoint + 1; ?>px) {3831 @media only screen and (min-width: <?php echo wp_kses($mobile_breakpoint + 1, 'strip'); ?>px) { 3840 3832 .primary-navigation .sub-menu .menu-item > a:link, .primary-navigation .sub-menu .menu-item > a:visited { 3841 color: <?php echo $mod; ?>;3833 color: <?php echo wp_kses($mod, 'strip'); ?>; 3842 3834 } 3843 3835 } … … 3850 3842 ?> 3851 3843 .primary-navigation .sub-menu .menu-item > a { 3852 font-size: <?php echo $mod / 1000 * 1.125; ?>rem;3844 font-size: <?php echo wp_kses($mod / 1000 * 1.125, 'strip'); ?>rem; 3853 3845 } 3854 3846 @media only screen and (min-width: 482px) { 3855 3847 .primary-navigation .sub-menu .menu-item > a { 3856 font-size: <?php echo $mod / 1000; ?>rem;3848 font-size: <?php echo wp_kses($mod / 1000, 'strip'); ?>rem; 3857 3849 } 3858 3850 } … … 3896 3888 ?> 3897 3889 .entry-title { 3898 font-size: <?php echo $mod / 1000 * 0.9; ?>rem;3890 font-size: <?php echo wp_kses($mod / 1000, 'strip'); ?>rem; 3899 3891 } 3900 3892 @media only screen and (min-width: 652px) { 3901 3893 .entry-title { 3902 font-size: <?php echo $mod / 1000; ?>rem;3894 font-size: <?php echo wp_kses($mod / 1000, 'strip'); ?>rem; 3903 3895 } 3904 3896 } … … 3913 3905 ?> 3914 3906 .site-main > article .entry-content { 3915 margin-top: <?php echo $mod - 1; ?>px;3907 margin-top: <?php echo wp_kses($mod - 1, 'strip'); ?>px; 3916 3908 } 3917 3909 @media only screen and (min-width: 482px) { 3918 3910 .site-main > article .entry-content { 3919 margin-top: <?php echo round(($mod - 1) / 3 * 2, 1); ?>px;3911 margin-top: <?php echo wp_kses(round(($mod - 1) / 3 * 2, 1), 'strip'); ?>px; 3920 3912 } 3921 3913 } … … 3937 3929 ?> 3938 3930 .comments-title, .comment-reply-title { 3939 font-size: <?php echo $mod / 1000 * 0.75; ?>rem;3931 font-size: <?php echo wp_kses($mod / 1000 * 0.75, 'strip'); ?>rem; 3940 3932 } 3941 3933 @media only screen and (min-width: 652px) { 3942 3934 .comments-title, .comment-reply-title { 3943 font-size: <?php echo $mod / 1000; ?>rem;3935 font-size: <?php echo wp_kses($mod / 1000, 'strip'); ?>rem; 3944 3936 } 3945 3937 } … … 3968 3960 ?> 3969 3961 #footer-wrapper {<?php if ($footer_color) { ?> 3970 background-color: <?php echo $footer_color; ?>;<?php } if ($footer_image) { ?>3971 background-image: url("<?php echo (wp_get_attachment_image_src($footer_image, 'full') ? wp_get_attachment_image_src($footer_image, 'full')[0] : ''); ?>");<?php } ?>3962 background-color: <?php echo wp_kses($footer_color, 'strip'); ?>;<?php } if ($footer_image) { ?> 3963 background-image: url("<?php echo esc_url(wp_get_attachment_image_src($footer_image, 'full') ? wp_get_attachment_image_src($footer_image, 'full')[0] : ''); ?>");<?php } ?> 3972 3964 background-size: cover; 3973 3965 background-repeat: no-repeat; … … 3989 3981 ?> 3990 3982 .widget-area, .no-widgets .site-footer { 3991 margin-top: <?php echo $mod -1; ?>px;3983 margin-top: <?php echo wp_kses($mod -1, 'strip'); ?>px; 3992 3984 } 3993 3985 @media only screen and (max-width: 481px) { 3994 3986 .widget-area { 3995 margin-top: <?php echo ceil(($mod -1) / 2); ?>px;3987 margin-top: <?php echo wp_kses(ceil(($mod -1) / 2), 'strip'); ?>px; 3996 3988 } 3997 3989 } … … 4005 3997 .widget-area { 4006 3998 display: grid; 4007 grid-template-columns: repeat(<?php echo $mod; ?>, 1fr);3999 grid-template-columns: repeat(<?php echo wp_kses($mod, 'strip'); ?>, 1fr); 4008 4000 column-gap: calc(2 * var(--global--spacing-horizontal)); 4009 4001 } … … 4017 4009 @media only screen and (min-width: 652px) { 4018 4010 .widget-area { 4019 grid-template-columns: repeat(<?php echo $mod; ?>, 1fr);4011 grid-template-columns: repeat(<?php echo wp_kses($mod, 'strip'); ?>, 1fr); 4020 4012 } 4021 4013 } … … 4029 4021 @media only screen and (min-width: 1024px) { 4030 4022 .widget-area { 4031 grid-template-columns: repeat(<?php echo $mod; ?>, 1fr);4023 grid-template-columns: repeat(<?php echo wp_kses($mod, 'strip'); ?>, 1fr); 4032 4024 } 4033 4025 } … … 4042 4034 @media only screen and (min-width: 822px) { 4043 4035 .site-footer { 4044 max-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), <?php echo $mod; ?>px);4036 max-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), <?php echo wp_kses($mod, 'strip'); ?>px); 4045 4037 } 4046 4038 } 4047 @media only screen and (min-width: 822px) and (max-width: <?php echo $mod + 200; ?>px) {4039 @media only screen and (min-width: 822px) and (max-width: <?php echo wp_kses($mod + 200, 'strip'); ?>px) { 4048 4040 .site-footer { 4049 4041 max-width: calc(100vw - 200px); 4050 4042 } 4051 4043 } 4052 @media only screen and (min-width: <?php echo $mod + 201; ?>px) {4044 @media only screen and (min-width: <?php echo wp_kses($mod + 201, 'strip'); ?>px) { 4053 4045 .site-footer { 4054 max-width: <?php echo $mod; ?>px;4046 max-width: <?php echo wp_kses($mod, 'strip'); ?>px; 4055 4047 } 4056 4048 } … … 4097 4089 ?> 4098 4090 .site-footer .site-logo .custom-logo { 4099 max-width: <?php echo $mod; ?>px;4091 max-width: <?php echo wp_kses($mod, 'strip'); ?>px; 4100 4092 max-height: none; 4101 4093 width: 100%; … … 4352 4344 if ($breadcrumbs) { 4353 4345 4354 echo '<div id="breadcrumbs" class="alignwide">' . $breadcrumbs . '</div>';4346 echo wp_kses('<div id="breadcrumbs" class="alignwide">' . $breadcrumbs . '</div>', 'post'); 4355 4347 4356 4348 } elseif (function_exists('bcn_display')) { … … 4549 4541 <?php 4550 4542 printf( 4551 __('This plugin requires the default Wordpress theme Twenty Twenty-One to be active or live previewed in order to function. Your theme "%s" is not compatible.', 'options-for-twenty-twenty-one'), 4552 get_template() 4543 /* translators: active theme slug */ 4544 esc_html(__('This plugin requires the default Wordpress theme Twenty Twenty-One to be active or live previewed in order to function. Your theme "%s" is not compatible.', 'options-for-twenty-twenty-one')), 4545 esc_html(get_template()) 4553 4546 ); 4554 4547 ?> 4555 4548 4556 <a href="<?php echo add_query_arg('search', 'twentytwentyone', admin_url('theme-install.php')); ?>" title="<?php esc_attr_e('Twenty Twenty-One', 'options-for-twenty-twenty-one'); ?>"><?php4549 <a href="<?php echo esc_url(add_query_arg('search', 'twentytwentyone', admin_url('theme-install.php'))); ?>" title="<?php esc_attr_e('Twenty Twenty-One', 'options-for-twenty-twenty-one'); ?>"><?php 4557 4550 esc_html_e('Please install and activate or live preview the Twenty Twenty-One theme (or a child theme thereof)', 'options-for-twenty-twenty-one'); 4558 4551 ?></a>.</p> -
options-for-twenty-twenty-one/tags/1.7.9/readme.txt
r3412272 r3418400 6 6 Tested up to: 6.9 7 7 Requires PHP: 5.6 8 Stable tag: 1.7. 88 Stable tag: 1.7.9 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 225 225 == Changelog == 226 226 227 = 1.7.9 = 228 * General housekeeping preparing for "Plugin Check" code review 229 227 230 = 1.7.8 = 228 231 * Remove Customizer CSS due to incompatible change introduced in WordPress v6.7 … … 528 531 == Upgrade Notice == 529 532 530 = 1.7. 8=531 * Remove Customizer CSS due to incompatible change introduced in WordPress v6.7533 = 1.7.9 = 534 * General housekeeping preparing for "Plugin Check" code review -
options-for-twenty-twenty-one/trunk/includes/class-oftto-common.php
r2986074 r3418400 1 1 <?php 2 2 /* 3 * Version: 1. 3.93 * Version: 1.4.2 4 4 */ 5 5 … … 43 43 public static function plugin_text_domain() { 44 44 45 return self::$plugin_text_domain;45 return 'options-for-twenty-twenty-one'; 46 46 47 47 } … … 61 61 public static function support_url() { 62 62 63 return 'https://wordpress.org/support/plugin/' . self::$plugin_text_domain. '/';63 return 'https://wordpress.org/support/plugin/' . 'options-for-twenty-twenty-one' . '/'; 64 64 65 65 } … … 67 67 public static function control_upgrade_text() { 68 68 69 $upgrade_text = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr(sprintf(__('Upgrade now to %s Premium', self::$plugin_text_domain), self::$plugin_name)) . '">' . sprintf(__('Upgrade now to %s Premium', self::$plugin_text_domain), self::$plugin_name) . '</a>'; 69 /* translators: name of the plugin */ 70 $upgrade_text = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr(sprintf(__('Upgrade now to %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name)) . '">' . sprintf(__('Upgrade now to %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name) . '</a>'; 70 71 71 72 if (!class_exists(self::$plugin_premium_class) || !get_option(self::$plugin_prefix . '_purchased')) { … … 73 74 if (!class_exists(self::$plugin_premium_class)) { 74 75 75 $upgrade_text .= sprintf(wp_kses(__(' or <a href="%s" title="Download Free Trial">trial it for 7 days</a>', self::$plugin_text_domain), array('a' => array('href' => array(), 'title' => array()))), esc_url(self::premium_link())); 76 /* translators: link to the premium upgrade */ 77 $upgrade_text .= sprintf(wp_kses(__(' or <a href="%s" title="Download Free Trial">trial it for 7 days</a>', 'options-for-twenty-twenty-one'), array('a' => array('href' => array(), 'title' => array()))), esc_url(self::premium_link())); 76 78 77 79 } … … 85 87 public static function control_section_description() { 86 88 87 $default_description = sprintf(wp_kses(__('If you have any requests for new features, please <a href="%s" title="Support Forum">let us know in the support forum</a>.', self::$plugin_text_domain), array('a' => array('href' => array(), 'title' => array()))), esc_url(self::support_url())); 89 /* translators: link to the plugin's support forum */ 90 $default_description = sprintf(wp_kses(__('If you have any requests for new features, please <a href="%s" title="Support Forum">let us know in the support forum</a>.', 'options-for-twenty-twenty-one'), array('a' => array('href' => array(), 'title' => array()))), esc_url(self::support_url())); 88 91 89 92 if (self::$plugin_premium_class) { … … 95 98 if (!class_exists(self::$plugin_premium_class)) { 96 99 97 $section_description = '<strong>' . __('For even more options', self::$plugin_text_domain) . '</strong>' . ' ' . $upgrade_text;100 $section_description = '<strong>' . __('For even more options', 'options-for-twenty-twenty-one') . '</strong>' . ' ' . $upgrade_text; 98 101 99 102 } else { 100 103 101 $section_description = '<strong>' . __('To keep using premium options', self::$plugin_text_domain) . '</strong>' . ' ' . $upgrade_text;104 $section_description = '<strong>' . __('To keep using premium options', 'options-for-twenty-twenty-one') . '</strong>' . ' ' . $upgrade_text; 102 105 103 106 } … … 119 122 $section_description .= ' ' . sprintf( 120 123 wp_kses( 124 /* translators: link to plugin install page */ 121 125 __( 122 126 '<strong>To reset this section of options to default settings</strong> without affecting other sections in the customizer, install <a href="%s" title="Reset Customizer">Reset Customizer</a>.', 123 self::$plugin_text_domain127 'options-for-twenty-twenty-one' 124 128 ), 125 129 array('strong' => array(), 'a' => array('href' => array(), 'title' => array())) … … 145 149 public static function control_setting_upgrade_nag() { 146 150 147 $upgrade_nag = self::control_upgrade_text() . __(' to use this option.', self::$plugin_text_domain);151 $upgrade_nag = self::control_upgrade_text() . __(' to use this option.', 'options-for-twenty-twenty-one'); 148 152 149 153 return $upgrade_nag; … … 234 238 235 239 $generated_css = sprintf('%s { %s: %s; }', $selector, $style, $prefix.$mod.$postfix); 236 echo $generated_css; 240 241 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 242 echo wp_strip_all_tags($generated_css); 237 243 238 244 } elseif ($mod) { 239 245 240 246 $generated_css = sprintf('%s { %s:%s; }', $selector, $style, $prefix.$value.$postfix); 241 echo $generated_css; 247 248 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 249 echo wp_strip_all_tags($generated_css); 242 250 243 251 } … … 249 257 if (self::$plugin_premium_class) { 250 258 251 return add_query_arg('url', (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'], 'https://webd.uk/product/' . self::$plugin_text_domain . '-upgrade/'); 252 259 if (isset($_SERVER['HTTP_HOST'])) { 260 261 return add_query_arg('url', (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . filter_var(wp_unslash($_SERVER['HTTP_HOST'], FILTER_SANITIZE_URL)), 'https://webd.uk/product/' . 'options-for-twenty-twenty-one' . '-upgrade/'); 262 263 } else { 264 265 return 'https://webd.uk/product/' . 'options-for-twenty-twenty-one' . '-upgrade/'; 266 267 } 253 268 254 269 } else { … … 276 291 $settings_links = array(); 277 292 278 $settings_links[] = '<a href="' . esc_url($settings_link) . '" title="' . esc_attr(__('Settings', self::$plugin_text_domain)) . '">' . __('Settings', self::$plugin_text_domain) . '</a>';293 $settings_links[] = '<a href="' . esc_url($settings_link) . '" title="' . esc_attr(__('Settings', 'options-for-twenty-twenty-one')) . '">' . __('Settings', 'options-for-twenty-twenty-one') . '</a>'; 279 294 280 295 if (!get_option(self::$plugin_prefix . '_purchased')) { … … 284 299 if (self::$plugin_upgrade) { 285 300 286 $settings_links[] = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr(sprintf(__('Buy %s Premium', self::$plugin_text_domain), self::$plugin_name)) . '" style="color: orange; font-weight: bold;">' . __('Buy Now', self::$plugin_text_domain) . '</a>'; 301 /* translators: name of the plugin */ 302 $settings_links[] = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr(sprintf(__('Buy %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name)) . '" style="color: orange; font-weight: bold;">' . __('Buy Now', 'options-for-twenty-twenty-one') . '</a>'; 287 303 288 304 } else { 289 305 290 $settings_links[] = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr(sprintf(__('Buy %s', self::$plugin_text_domain), self::$plugin_name)) . '" style="color: orange; font-weight: bold;">' . __('Buy Now', self::$plugin_text_domain) . '</a>'; 306 /* translators: name of the plugin */ 307 $settings_links[] = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr(sprintf(__('Buy %s', 'options-for-twenty-twenty-one'), self::$plugin_name)) . '" style="color: orange; font-weight: bold;">' . __('Buy Now', 'options-for-twenty-twenty-one') . '</a>'; 291 308 292 309 } … … 294 311 } else { 295 312 296 $settings_links[] = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr((self::$plugin_premium_class ? sprintf(__('Upgrade now to %s Premium', self::$plugin_text_domain), self::$plugin_name) : sprintf(__('Contribute to %s', self::$plugin_text_domain), self::$plugin_name))) . '" style="color: orange; font-weight: bold;">' . (self::$plugin_premium_class ? __('Upgrade', self::$plugin_text_domain) : __('Support Us', self::$plugin_text_domain)) . '</a>'; 313 /* translators: name of the plugin */ 314 $settings_links[] = '<a href="' . esc_url(self::upgrade_link()) . '" title="' . esc_attr((self::$plugin_premium_class ? sprintf(__('Upgrade now to %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name) : sprintf(__('Contribute to %s', 'options-for-twenty-twenty-one'), self::$plugin_name))) . '" style="color: orange; font-weight: bold;">' . (self::$plugin_premium_class ? __('Upgrade', 'options-for-twenty-twenty-one') : __('Support Us', 'options-for-twenty-twenty-one')) . '</a>'; 297 315 298 316 } … … 300 318 if ($premium) { 301 319 302 $settings_links[] = '<a href="' . wp_nonce_url('?activate-' . self::$plugin_prefix . '=true', self::$plugin_prefix . '_activate') . '" id="' . self::$plugin_prefix . '_activate_upgrade" title="' . esc_attr(__('Activate Purchase', self::$plugin_text_domain)) . '" onclick="jQuery(this).append(' <img src="/wp-admin/images/loading.gif" style="float: none; width: auto; height: auto;" />'); setTimeout(function(){document.getElementById(\'' . self::$plugin_prefix . '_activate_upgrade\').removeAttribute(\'href\');},1); return true;">' . __('Activate Purchase', self::$plugin_text_domain) . '</a>'; 303 304 } elseif (self::$plugin_trial && !is_plugin_active(self::$plugin_text_domain . '-premium/' . self::$plugin_text_domain . '-premium.php')) { 305 306 $settings_links[] = '<a href="' . esc_url(self::premium_link()) . '" title="' . esc_attr(sprintf(__('Trial %s Premium', self::$plugin_text_domain), self::$plugin_name)) . ' for 7 days">' . __('Download Trial', self::$plugin_text_domain) . '</a>'; 320 $settings_links[] = '<a href="' . wp_nonce_url('?activate-' . self::$plugin_prefix . '=true', self::$plugin_prefix . '_activate') . '" id="' . self::$plugin_prefix . '_activate_upgrade" title="' . esc_attr(__('Activate Purchase', 'options-for-twenty-twenty-one')) . '" onclick="jQuery(this).append(' <img src="/wp-admin/images/loading.gif" style="float: none; width: auto; height: auto;" />'); setTimeout(function(){document.getElementById(\'' . self::$plugin_prefix . '_activate_upgrade\').removeAttribute(\'href\');},1); return true;">' . __('Activate Purchase', 'options-for-twenty-twenty-one') . '</a>'; 321 322 } elseif (self::$plugin_trial && !is_plugin_active('options-for-twenty-twenty-one' . '-premium/' . 'options-for-twenty-twenty-one' . '-premium.php')) { 323 324 /* translators: name of the plugin */ 325 $settings_links[] = '<a href="' . esc_url(self::premium_link()) . '" title="' . esc_attr(sprintf(__('Trial %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name)) . ' for 7 days">' . __('Download Trial', 'options-for-twenty-twenty-one') . '</a>'; 307 326 308 327 } … … 310 329 } elseif ($premium) { 311 330 312 $settings_links[] = '<strong style="color: green; display: inline;">' . __('Purchase Confirmed', self::$plugin_text_domain) . '</strong>';331 $settings_links[] = '<strong style="color: green; display: inline;">' . __('Purchase Confirmed', 'options-for-twenty-twenty-one') . '</strong>'; 313 332 314 333 } … … 320 339 public static function plugin_row_meta($plugin_meta, $plugin_file, $plugin_data, $status) { 321 340 322 if ($plugin_file === self::$plugin_text_domain . '/' . self::$plugin_text_domain . '.php') { 323 324 $plugin_meta[] = '<a href="' . esc_url(self::support_url()) . '" title="' . __('Problems? We are here to help!', self::$plugin_text_domain) . '" style="color: orange; font-weight: bold;">' . __('Need help?', self::$plugin_text_domain) . '</a>'; 325 $plugin_meta[] = '<a href="https://wordpress.org/support/plugin/' . self::$plugin_text_domain . '/reviews/#new-post" title="' . esc_attr(sprintf(__('If you like %s, please leave a review!', self::$plugin_text_domain), self::$plugin_name)) . '">' . __('Review plugin', self::$plugin_text_domain) . '</a>'; 341 if ($plugin_file === 'options-for-twenty-twenty-one' . '/' . 'options-for-twenty-twenty-one' . '.php') { 342 343 $plugin_meta[] = '<a href="' . esc_url(self::support_url()) . '" title="' . __('Problems? We are here to help!', 'options-for-twenty-twenty-one') . '" style="color: orange; font-weight: bold;">' . __('Need help?', 'options-for-twenty-twenty-one') . '</a>'; 344 /* translators: name of the plugin */ 345 $plugin_meta[] = '<a href="https://wordpress.org/support/plugin/' . 'options-for-twenty-twenty-one' . '/reviews/#new-post" title="' . esc_attr(sprintf(__('If you like %s, please leave a review!', 'options-for-twenty-twenty-one'), self::$plugin_name)) . '">' . __('Review plugin', 'options-for-twenty-twenty-one') . '</a>'; 326 346 327 347 } … … 357 377 ?> 358 378 359 <div class="notice notice-error is-dismissible <?php echo self::$plugin_prefix; ?>-notice"> 360 361 <p><strong><?php echo self::$plugin_name; ?></strong><br /> 362 <?php esc_html_e('In order to use the premium features, you need to install the premium version of the plugin ...', self::$plugin_text_domain); ?></p> 363 364 <p><a href="<?php echo esc_url(self::premium_link()); ?>" title="<?php echo esc_attr(sprintf(__('Download %s Premium', self::$plugin_text_domain), self::$plugin_name)); ?>" class="button-primary"><?php printf(__('Download %s Premium', self::$plugin_text_domain), self::$plugin_name); ?></a></p> 379 <div class="notice notice-error is-dismissible <?php echo esc_html(self::$plugin_prefix); ?>-notice"> 380 381 <p><strong><?php echo esc_html(self::$plugin_name); ?></strong><br /> 382 <?php esc_html_e('In order to use the premium features, you need to install the premium version of the plugin ...', 'options-for-twenty-twenty-one'); ?></p> 383 384 <p><a href="<?php 385 /* translators: name of the plugin */ 386 echo esc_url(self::premium_link()); ?>" title="<?php echo esc_attr(sprintf(__('Download %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name)); ?>" class="button-primary"><?php printf(esc_html(__('Download %s Premium', 'options-for-twenty-twenty-one')), esc_html(self::$plugin_name)); ?></a></p> 365 387 366 388 </div> 367 389 368 390 <script type="text/javascript"> 369 jQuery(document).on('click', '.<?php echo self::$plugin_prefix; ?>-notice .notice-dismiss', function() {391 jQuery(document).on('click', '.<?php echo esc_attr(self::$plugin_prefix); ?>-notice .notice-dismiss', function() { 370 392 jQuery.ajax({ 371 393 url: ajaxurl, 372 394 data: { 373 action: 'dismiss_<?php echo self::$plugin_prefix; ?>_notice_handler',374 _ajax_nonce: '<?php echo wp_create_nonce(self::$plugin_prefix . '-ajax-nonce'); ?>'395 action: 'dismiss_<?php echo esc_attr(self::$plugin_prefix); ?>_notice_handler', 396 _ajax_nonce: '<?php echo esc_attr(wp_create_nonce(self::$plugin_prefix . '-ajax-nonce')); ?>' 375 397 } 376 398 }); … … 380 402 <?php 381 403 382 } elseif (!class_exists(self::$plugin_premium_class) && time() > (strtotime('+1 hour', filectime(__DIR__))) && get_user_meta(get_current_user_id(), self::$plugin_prefix . '-notice-dismissed', true) != self::plugin_version()) { 383 384 ?> 385 386 <div class="notice notice-info is-dismissible <?php echo self::$plugin_prefix; ?>-notice"> 387 388 <p><strong><?php printf(__('Thank you for using %s plugin', self::$plugin_text_domain), self::$plugin_name); ?></strong><br /> 404 } elseif ( 405 !class_exists(self::$plugin_premium_class) && 406 time() > (strtotime('+1 hour', filectime(__DIR__))) && 407 get_user_meta(get_current_user_id(), self::$plugin_prefix . '-notice-dismissed', true) != self::plugin_version() 408 ) { 409 410 ?> 411 412 <div class="notice notice-info is-dismissible <?php echo esc_attr(self::$plugin_prefix); ?>-notice"> 413 414 <p style="font-size:15px;"><strong><?php 415 /* translators: name of the plugin */ 416 printf(esc_html(__('Thank you for using %s plugin', 'options-for-twenty-twenty-one')), esc_html(self::$plugin_name)); ?></strong></p> 389 417 <?php 390 418 391 419 if (self::$plugin_trial == true) { 392 420 393 _e('Would you like to try even more features? Download your 7 day free trial now!', self::$plugin_text_domain); 421 ?> 422 423 <p><?php echo esc_html(__('Would you like to try even more features? Download your 7 day free trial now!', 'options-for-twenty-twenty-one')); ?></p> 424 <?php 394 425 395 426 } else { 396 427 397 echo sprintf(__('Upgrade now to %s Premium to enable more options and features and contribute to the further development of this plugin.', self::$plugin_text_domain), self::$plugin_name); 428 ?> 429 430 <p> 431 <?php 432 /* translators: name of the plugin */ 433 echo esc_html(sprintf(__('Upgrade now to %s Premium to enable more options and features and contribute to the further development of this plugin.', 'options-for-twenty-twenty-one'), self::$plugin_name)); ?> 434 </p> 435 <?php 398 436 399 437 } 400 438 401 ?> </p>402 403 <p><?php439 ?> 440 441 <p><?php 404 442 405 443 if (self::$plugin_trial == true) { … … 407 445 ?> 408 446 409 <a href="<?php echo esc_url(self::premium_link()); ?>" title="<?php echo esc_attr(sprintf(__('Try %s Premium', self::$plugin_text_domain), self::$plugin_name)); ?>" class="button-primary"><?php printf(__('Trial %s Premium for 7 days', self::$plugin_text_domain), self::$plugin_name); ?></a> 410 447 <a href="<?php echo esc_url(self::premium_link()); ?>" 448 title="<?php 449 /* translators: name of the plugin */ 450 echo esc_attr(sprintf(__('Try %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name)); ?>" 451 class="button-secondary"> 452 <?php echo esc_html(__('Try premium plugin free for 7 days', 'options-for-twenty-twenty-one')); ?> 453 </a> 411 454 <?php 412 455 … … 414 457 415 458 ?> 416 <a href="<?php echo esc_url(self::upgrade_link()); ?>" title="<?php echo esc_attr(sprintf(__('Upgrade now to %s Premium', self::$plugin_text_domain), self::$plugin_name)); ?>" class="button-primary"><?php printf(__('Upgrade now to %s Premium', self::$plugin_text_domain), self::$plugin_name); ?></a></p> 459 460 <a href="<?php echo esc_url(self::upgrade_link()); ?>" 461 title="<?php 462 /* translators: name of the plugin */ 463 echo esc_attr(sprintf(__('Upgrade now to %s Premium', 'options-for-twenty-twenty-one'), self::$plugin_name)); ?>" 464 class="button-primary"> 465 <?php echo esc_html(__('Upgrade now to premium plugin', 'options-for-twenty-twenty-one')); ?> 466 </a> 467 468 </p> 469 470 <hr style="margin:12px 0;"> 471 472 <p> 473 <strong>✨ Need help with your WordPress site?</strong> 474 🚀 Slow, want new features, or need a glow-up? 475 <a href="https://webd.uk/services/?utm_campaign=notice&utm_term=options-for-twenty-twenty-one" class="button-secondary" style="margin-left:6px; vertical-align: middle;">Explore our services</a> 476 </p> 417 477 418 478 </div> 419 479 420 480 <script type="text/javascript"> 421 jQuery(document).on('click', '.<?php echo self::$plugin_prefix; ?>-notice .notice-dismiss', function() {481 jQuery(document).on('click', '.<?php echo esc_attr(self::$plugin_prefix); ?>-notice .notice-dismiss', function() { 422 482 jQuery.ajax({ 423 483 url: ajaxurl, 424 484 data: { 425 action: 'dismiss_<?php echo self::$plugin_prefix; ?>_notice_handler',426 _ajax_nonce: '<?php echo wp_create_nonce(self::$plugin_prefix . '-ajax-nonce'); ?>'485 action: 'dismiss_<?php echo esc_attr(self::$plugin_prefix); ?>_notice_handler', 486 _ajax_nonce: '<?php echo esc_attr(wp_create_nonce(self::$plugin_prefix . '-ajax-nonce')); ?>' 427 487 } 428 488 }); … … 434 494 } 435 495 436 } elseif (time() > (strtotime('+1 hour', filectime(__DIR__))) && get_user_meta(get_current_user_id(), self::$plugin_prefix . '-notice-dismissed', true) != self::plugin_version() && !get_option(self::$plugin_prefix . '_donated')) { 437 438 ?> 439 440 <div class="notice notice-info is-dismissible <?php echo self::$plugin_prefix; ?>-notice"> 441 <p><strong><?php printf(__('Thank you for using %s plugin', self::$plugin_text_domain), self::$plugin_name); ?></strong></p> 442 <?php 443 496 } elseif ( 497 time() > (strtotime('+1 hour', filectime(__DIR__))) && 498 get_user_meta(get_current_user_id(), self::$plugin_prefix . '-notice-dismissed', true) != self::plugin_version() && 499 !get_option(self::$plugin_prefix . '_donated') 500 ) { 501 502 ?> 503 504 <div class="notice notice-info is-dismissible <?php echo esc_attr(self::$plugin_prefix); ?>-notice"> 505 <p><strong><?php 506 /* translators: name of the plugin */ 507 printf(esc_html(__('Thank you for using %s plugin', 'options-for-twenty-twenty-one')), esc_html(self::$plugin_name)); ?></strong></p> 508 <?php 509 510 // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound 444 511 do_action(self::$plugin_prefix . '_admin_notice_donate'); 445 512 446 513 ?> 447 <p><?php esc_html_e('Funding plugins like this one with small financial contributions is essential to pay the developers to continue to do what they do. Please take a moment to give a small amount ...', self::$plugin_text_domain); ?></p> 448 <p><a href="<?php echo esc_url(self::upgrade_link()); ?>" title="<?php echo esc_attr(sprintf(__('Contribute to %s', self::$plugin_text_domain), self::$plugin_name)); ?>" class="button-primary"><?php printf(__('Contribute to %s', self::$plugin_text_domain), self::$plugin_name); ?></a> <a href="#" id="<?php echo self::$plugin_prefix; ?>-already-paid" title="<?php echo esc_attr(__('Aleady Contributed!', self::$plugin_text_domain)); ?>" class="button-primary"><?php esc_html_e('Aleady Contributed!', self::$plugin_text_domain); ?></a></p> 514 <p><?php esc_html_e('Funding plugins like this one with small financial contributions is essential to pay the developers to continue to do what they do. Please take a moment to give a small amount ...', 'options-for-twenty-twenty-one'); ?></p> 515 <p><a href="<?php echo esc_url(self::upgrade_link()); ?>" title="<?php 516 /* translators: name of the plugin */ 517 echo esc_attr(sprintf(__('Contribute to %s', 'options-for-twenty-twenty-one'), self::$plugin_name)); ?>" class="button-primary"><?php printf(esc_html(__('Contribute to %s', 'options-for-twenty-twenty-one')), esc_html(self::$plugin_name)); ?></a> <a href="#" id="<?php echo esc_attr(self::$plugin_prefix); ?>-already-paid" title="<?php echo esc_attr(__('Aleady Contributed!', 'options-for-twenty-twenty-one')); ?>" class="button-primary"><?php esc_html_e('Aleady Contributed!', 'options-for-twenty-twenty-one'); ?></a></p> 449 518 </div> 450 519 451 520 <script type="text/javascript"> 452 jQuery(document).on('click', '#<?php echo self::$plugin_prefix; ?>-already-paid', function() {453 if (confirm(<?php echo json_encode(__('Have you really? Press "Cancel" if you forgot to 🙂', self::$plugin_text_domain)); ?>)) {454 alert(<?php echo json_encode(__('Thank you!', self::$plugin_text_domain)); ?>);455 jQuery('.<?php echo self::$plugin_prefix; ?>-notice').fadeTo(100, 0, function() {456 jQuery('.<?php echo self::$plugin_prefix; ?>-notice').slideUp(100, function() {457 jQuery('.<?php echo self::$plugin_prefix; ?>-notice').remove()521 jQuery(document).on('click', '#<?php echo esc_attr(self::$plugin_prefix); ?>-already-paid', function() { 522 if (confirm(<?php echo json_encode(__('Have you really? Press "Cancel" if you forgot to 🙂', 'options-for-twenty-twenty-one')); ?>)) { 523 alert(<?php echo json_encode(__('Thank you!', 'options-for-twenty-twenty-one')); ?>); 524 jQuery('.<?php echo esc_attr(self::$plugin_prefix); ?>-notice').fadeTo(100, 0, function() { 525 jQuery('.<?php echo esc_attr(self::$plugin_prefix); ?>-notice').slideUp(100, function() { 526 jQuery('.<?php echo esc_attr(self::$plugin_prefix); ?>-notice').remove() 458 527 }); 459 528 }); … … 461 530 url: ajaxurl, 462 531 data: { 463 action: 'dismiss_<?php echo self::$plugin_prefix; ?>_notice_handler',532 action: 'dismiss_<?php echo esc_attr(self::$plugin_prefix); ?>_notice_handler', 464 533 donated: 'true', 465 _ajax_nonce: '<?php echo wp_create_nonce(self::$plugin_prefix . '-ajax-nonce'); ?>'534 _ajax_nonce: '<?php echo esc_attr(wp_create_nonce(self::$plugin_prefix . '-ajax-nonce')); ?>' 466 535 } 467 536 }); 468 537 } else { 469 window.location.assign('<?php echo self::upgrade_link(); ?>');538 window.location.assign('<?php echo esc_url(self::upgrade_link()); ?>'); 470 539 } 471 540 }); 472 jQuery(document).on('click', '.<?php echo self::$plugin_prefix; ?>-notice .notice-dismiss', function() {541 jQuery(document).on('click', '.<?php echo esc_attr(self::$plugin_prefix); ?>-notice .notice-dismiss', function() { 473 542 jQuery.ajax({ 474 543 url: ajaxurl, 475 544 data: { 476 action: 'dismiss_<?php echo self::$plugin_prefix; ?>_notice_handler',477 _ajax_nonce: '<?php echo wp_create_nonce(self::$plugin_prefix . '-ajax-nonce'); ?>'545 action: 'dismiss_<?php echo esc_attr(self::$plugin_prefix); ?>_notice_handler', 546 _ajax_nonce: '<?php echo esc_attr(wp_create_nonce(self::$plugin_prefix . '-ajax-nonce')); ?>' 478 547 } 479 548 }); … … 509 578 is_admin() && 510 579 $pagenow === 'customize.php' && 511 isset($_GET['theme']) && 512 !in_array($_GET['theme'], $themes, true) 580 isset($_GET['theme']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 581 !in_array($_GET['theme'], $themes, true) // phpcs:ignore WordPress.Security.NonceVerification.Recommended 513 582 ) && !( 514 583 !is_admin() && 515 584 $pagenow === 'index.php' && 516 isset($_GET['customize_theme']) && 517 isset($_GET['customize_changeset_uuid']) && 518 !in_array($_GET['customize_theme'], $themes, true) 585 isset($_GET['customize_theme']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 586 isset($_GET['customize_changeset_uuid']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 587 !in_array($_GET['customize_theme'], $themes, true) // phpcs:ignore WordPress.Security.NonceVerification.Recommended 519 588 ) 520 589 ) { … … 530 599 is_admin() && 531 600 $pagenow === 'customize.php' && 532 isset($_GET['theme']) && 533 in_array($_GET['theme'], $themes, true) 601 isset($_GET['theme']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 602 in_array($_GET['theme'], $themes, true) // phpcs:ignore WordPress.Security.NonceVerification.Recommended 534 603 ) || ( 535 604 !is_admin() && 536 605 $pagenow === 'index.php' && 537 isset($_GET['customize_theme']) && 538 isset($_GET['customize_changeset_uuid']) && 539 in_array($_GET['customize_theme'], $themes, true) 606 isset($_GET['customize_theme']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 607 isset($_GET['customize_changeset_uuid']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 608 in_array($_GET['customize_theme'], $themes, true) // phpcs:ignore WordPress.Security.NonceVerification.Recommended 540 609 )) 541 610 ) { … … 549 618 !is_admin() && 550 619 $pagenow === 'index.php' && 551 isset($_GET['customize_theme']) && 552 isset($_GET['customize_changeset_uuid']) 620 isset($_GET['customize_theme']) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended 621 isset($_GET['customize_changeset_uuid']) // phpcs:ignore WordPress.Security.NonceVerification.Recommended 553 622 554 623 ) { 555 624 556 $child = wp_get_theme( $_GET['customize_theme']);625 $child = wp_get_theme(sanitize_file_name(wp_unslash($_GET['customize_theme']))); // phpcs:ignore WordPress.Security.NonceVerification.Recommended 557 626 558 627 if (isset($child->template) && in_array($child->template, $themes, true)) { … … 568 637 is_admin() && 569 638 ($pagenow === 'customize.php' || $pagenow === 'admin-ajax.php') && 570 isset($_GET['theme']) || (isset($_POST['customize_theme']) && isset($_POST['customize_changeset_uuid'])) 639 ( 640 isset($_GET['theme']) || // phpcs:ignore WordPress.Security.NonceVerification.Recommended 641 ( 642 isset($_POST['customize_theme']) && // phpcs:ignore WordPress.Security.NonceVerification.Missing 643 isset($_POST['customize_changeset_uuid']) // phpcs:ignore WordPress.Security.NonceVerification.Missing 644 ) 645 ) 571 646 ) { 572 647 573 if (isset($_GET['theme'])) { 574 575 $child = wp_get_theme( $_GET['theme']);648 if (isset($_GET['theme'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended 649 650 $child = wp_get_theme(sanitize_file_name(wp_unslash($_GET['theme']))); // phpcs:ignore WordPress.Security.NonceVerification.Recommended 576 651 577 652 } else { 578 653 579 $child = wp_get_theme( $_POST['customize_theme']);654 $child = wp_get_theme(sanitize_file_name(wp_unslash($_POST['customize_theme']))); // phpcs:ignore WordPress.Security.NonceVerification.Missing 580 655 581 656 } … … 622 697 623 698 ?> 624 <span class="description customize-control-description"><?php echo $this->description; ?></span>699 <span class="description customize-control-description"><?php echo esc_html($this->description); ?></span> 625 700 <?php 626 701 … … 647 722 ?> 648 723 </ul> 649 <input type="hidden" id="_customize-input-<?php echo $this->id; ?>" <?php $this->link(); ?> value="<?php echo esc_attr(implode(',', $multi_values)); ?>" />724 <input type="hidden" id="_customize-input-<?php echo esc_attr($this->id); ?>" <?php $this->link(); ?> value="<?php echo esc_attr(implode(',', $multi_values)); ?>" /> 650 725 <?php 651 726 -
options-for-twenty-twenty-one/trunk/options-for-twenty-twenty-one.php
r3180355 r3418400 2 2 /* 3 3 * Plugin Name: Options for Twenty Twenty-One 4 * Version: 1.7. 84 * Version: 1.7.9 5 5 * Plugin URI: https://webd.uk/product/options-for-twenty-twenty-one-upgrade/ 6 6 * Description: Adds powerful customizer options to modify all aspects of the default Wordpress theme Twenty Twenty-One 7 7 * Author: Webd Ltd 8 8 * Author URI: https://webd.uk 9 * License: GPLv2 or later 10 * License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html 9 11 * Text Domain: options-for-twenty-twenty-one 10 12 */ … … 22 24 class options_for_twenty_twenty_one_class { 23 25 24 public static $version = '1.7. 8';26 public static $version = '1.7.9'; 25 27 26 28 function __construct() { … … 1413 1415 $wp_customize->add_control('inject_breadcrumbs', array( 1414 1416 'label' => __('Inject Breadcrumbs', 'options-for-twenty-twenty-one'), 1415 'description' => sprintf(wp_kses(__('Inject <a href="%s">Yoast SEO</a> or <a href="%s">Breadcrumb NavXT</a> breadcrumbs above page content.', 'options-for-twenty-twenty-one'), array('a' => array('href' => array()))), esc_url(admin_url('plugin-install.php?s=wordpress-seo&tab=search&type=term')), esc_url(admin_url('plugin-install.php?s=breadcrumb-navxt&tab=search&type=term'))), 1417 /* translators: links to plugin installer */ 1418 'description' => sprintf(wp_kses(__('Inject <a href="%1$s">Yoast SEO</a> or <a href="%2$s">Breadcrumb NavXT</a> breadcrumbs above page content.', 'options-for-twenty-twenty-one'), array('a' => array('href' => array()))), esc_url(admin_url('plugin-install.php?s=wordpress-seo&tab=search&type=term')), esc_url(admin_url('plugin-install.php?s=breadcrumb-navxt&tab=search&type=term'))), 1416 1419 'section' => 'oftto_content', 1417 1420 'settings' => 'inject_breadcrumbs', … … 2675 2678 @media only screen and (min-width: 482px) { 2676 2679 :root { 2677 --responsive--aligndefault-width: min(calc(100vw - 4 * var(--global--spacing-horizontal)), <?php echo $mod; ?>px);2680 --responsive--aligndefault-width: min(calc(100vw - 4 * var(--global--spacing-horizontal)), <?php echo wp_kses($mod, 'strip'); ?>px); 2678 2681 } 2679 2682 } 2680 2683 @media only screen and (min-width: 822px) { 2681 2684 :root { 2682 --responsive--aligndefault-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), <?php echo $mod; ?>px);2685 --responsive--aligndefault-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), <?php echo wp_kses($mod, 'strip'); ?>px); 2683 2686 } 2684 2687 } … … 2709 2712 } 2710 2713 }<?php if (($mod + 200) > 822) { ?> 2711 @media only screen and (min-width: 822px) and (max-width: <?php echo $mod + 200; ?>px) {2714 @media only screen and (min-width: 822px) and (max-width: <?php echo wp_kses($mod + 200, 'strip'); ?>px) { 2712 2715 .post-thumbnail, 2713 2716 .entry-content .wp-audio-shortcode, … … 2735 2738 } 2736 2739 }<?php } ?> 2737 @media only screen and (min-width: <?php echo $mod + 201; ?>px) {2740 @media only screen and (min-width: <?php echo wp_kses($mod + 201, 'strip'); ?>px) { 2738 2741 .post-thumbnail, 2739 2742 .entry-content .wp-audio-shortcode, … … 2747 2750 .author-bio, 2748 2751 .search-form { 2749 max-width: <?php echo $mod; ?>px;2752 max-width: <?php echo wp_kses($mod, 'strip'); ?>px; 2750 2753 } 2751 2754 .author-bio.show-avatars .author-bio-content { 2752 max-width: <?php echo $mod -90; ?>px;2755 max-width: <?php echo wp_kses($mod - 90, 'strip'); ?>px; 2753 2756 } 2754 2757 .entry-content > .alignleft, 2755 2758 .entry-content > .alignright { 2756 margin-right: calc(0.5 * (100vw - <?php echo $mod; ?>px));2759 margin-right: calc(0.5 * (100vw - <?php echo wp_kses($mod, 'strip'); ?>px)); 2757 2760 } 2758 2761 .entry-content > .alignleft, 2759 2762 .entry-content > .alignright { 2760 max-width: calc(0.5 * <?php echo $mod; ?>px);2763 max-width: calc(0.5 * <?php echo wp_kses($mod, 'strip'); ?>px); 2761 2764 } 2762 2765 } … … 2807 2810 @media only screen and (min-width: 822px) { 2808 2811 :root { 2809 --responsive--alignwide-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), <?php echo $mod; ?>px);2812 --responsive--alignwide-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), <?php echo wp_kses($mod, 'strip'); ?>px); 2810 2813 } 2811 2814 } 2812 @media only screen and (min-width: 822px) and (max-width: <?php echo $mod + 200; ?>px) {2815 @media only screen and (min-width: 822px) and (max-width: <?php echo wp_kses($mod + 200, 'strip'); ?>px) { 2813 2816 .widget-area, 2814 2817 .pagination, … … 2835 2838 } 2836 2839 } 2837 @media only screen and (min-width: <?php echo $mod + 201; ?>px) {2840 @media only screen and (min-width: <?php echo wp_kses($mod + 201, 'strip'); ?>px) { 2838 2841 .widget-area, 2839 2842 .pagination, … … 2847 2850 .wp-block-pullquote.alignwide blockquote, 2848 2851 hr.wp-block-separator:not(.is-style-dots).alignwide { 2849 max-width: <?php echo $mod; ?>px;2852 max-width: <?php echo wp_kses($mod, 'strip'); ?>px; 2850 2853 } 2851 2854 .entry-header .post-thumbnail, … … 2857 2860 .alignfull [class*=inner-container] > .alignwide, 2858 2861 .alignwide [class*=inner-container] > .alignwide { 2859 width: <?php echo $mod; ?>px;2862 width: <?php echo wp_kses($mod, 'strip'); ?>px; 2860 2863 } 2861 2864 } … … 2872 2875 ?> 2873 2876 .woocommerce .content-area { 2874 max-width: var(--responsive--align<?php echo $mod; ?>-width);2877 max-width: var(--responsive--align<?php echo wp_kses($mod, 'strip'); ?>-width); 2875 2878 margin-left: auto; 2876 2879 margin-right: auto; … … 2923 2926 2924 2927 ?> 2925 @media (min-width: <?php echo $alignwide_max_width; ?>px) {2926 .<?php echo $taxonomy; ?> .page-header {2928 @media (min-width: <?php echo wp_kses($alignwide_max_width, 'strip'); ?>px) { 2929 .<?php echo wp_kses($taxonomy, 'strip'); ?> .page-header { 2927 2930 max-width: none; 2928 2931 } 2929 2932 } 2930 .<?php echo $taxonomy; ?> .search-result-count {2933 .<?php echo wp_kses($taxonomy, 'strip'); ?> .search-result-count { 2931 2934 max-width: none; 2932 2935 } 2933 .<?php echo $taxonomy; ?> .site-main {2936 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main { 2934 2937 display: flex; 2935 2938 flex-wrap: wrap; … … 2939 2942 } 2940 2943 @media (min-width: 482px) { 2941 .<?php echo $taxonomy; ?> .site-main {2944 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main { 2942 2945 padding-left: 1rem; 2943 2946 padding-right: 1rem; 2944 2947 } 2945 2948 } 2946 .<?php echo $taxonomy; ?> .site-main>* {2949 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>* { 2947 2950 padding: 1rem; 2948 2951 width: 100%; 2949 2952 } 2950 .<?php echo $taxonomy; ?> .site-main>article {2953 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article { 2951 2954 margin: 0; 2952 2955 } 2953 2956 @media (min-width: 482px) { 2954 .<?php echo $taxonomy; ?> .site-main>article {2957 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article { 2955 2958 width: 50%; 2956 2959 } 2957 2960 } 2958 2961 @media (min-width: 822px) { 2959 .<?php echo $taxonomy; ?> .site-main>article {2962 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article { 2960 2963 width: 25%; 2961 2964 } 2962 2965 } 2963 .<?php echo $taxonomy; ?> .site-main>article>.entry-header {2966 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header { 2964 2967 width: 100%; 2965 2968 position: relative; 2966 2969 margin: 0; 2967 2970 } 2968 .<?php echo $taxonomy; ?> .site-main>article:not(.has-post-thumbnail)>.entry-header {2971 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article:not(.has-post-thumbnail)>.entry-header { 2969 2972 border: 1px solid #28303d; 2970 2973 } 2971 .<?php echo $taxonomy; ?> .site-main>article>.entry-header::after {2974 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header::after { 2972 2975 display: block; 2973 2976 content: ''; 2974 2977 padding-bottom: 65%; 2975 2978 } 2976 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.entry-title {2979 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.entry-title { 2977 2980 position: absolute; 2978 2981 z-index: 2; … … 2982 2985 } 2983 2986 @media (max-width: 482px) { 2984 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.entry-title {2987 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.entry-title { 2985 2988 font-size: 8vw; 2986 2989 } 2987 2990 } 2988 2991 @media (min-width: 482px) and (max-width: 821px) { 2989 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.entry-title {2992 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.entry-title { 2990 2993 font-size: 4vw; 2991 2994 } 2992 2995 } 2993 2996 @media (min-width: 822px) { 2994 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.entry-title {2997 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.entry-title { 2995 2998 font-size: 2vw; 2996 2999 } 2997 3000 } 2998 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.entry-title>a {3001 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.entry-title>a { 2999 3002 display: flex; 3000 3003 justify-content: center; … … 3006 3009 font-weight: 900; 3007 3010 } 3008 .<?php echo $taxonomy; ?> .site-main>article.has-post-thumbnail>.entry-header>.entry-title>a {3011 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article.has-post-thumbnail>.entry-header>.entry-title>a { 3009 3012 text-shadow: -1px -1px 0 var(--global--color-background), 1px -1px 0 var(--global--color-background), -1px 1px 0 var(--global--color-background), 1px 1px 0 var(--global--color-background); 3010 3013 } 3011 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.post-thumbnail {3014 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.post-thumbnail { 3012 3015 margin: 0; 3013 3016 } 3014 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.post-thumbnail img {3017 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.post-thumbnail img { 3015 3018 position: absolute; 3016 3019 width: 100% !important; … … 3021 3024 z-index: 1; 3022 3025 } 3023 .<?php echo $taxonomy; ?> .site-main>article>.entry-header>.post-thumbnail figcaption,3024 .<?php echo $taxonomy; ?> .site-main>article>.entry-footer,3025 .<?php echo $taxonomy; ?> .site-main>article>.entry-content {3026 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-header>.post-thumbnail figcaption, 3027 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-footer, 3028 .<?php echo wp_kses($taxonomy, 'strip'); ?> .site-main>article>.entry-content { 3026 3029 display: none; 3027 3030 } 3028 .<?php echo $taxonomy; ?> .pagination {3031 .<?php echo wp_kses($taxonomy, 'strip'); ?> .pagination { 3029 3032 padding: 0; 3030 3033 max-width: none; 3031 3034 border: none; 3032 3035 } 3033 .<?php echo $taxonomy; ?> .pagination .nav-links {3036 .<?php echo wp_kses($taxonomy, 'strip'); ?> .pagination .nav-links { 3034 3037 padding: 1rem; 3035 3038 border-top: 3px solid var(--global--color-border); … … 3049 3052 ?> 3050 3053 <?php echo (get_theme_mod('site_wide_header_height') ? '' : '.home '); ?>#masthead { 3051 min-height: <?php echo $mod; ?>vh;3054 min-height: <?php echo wp_kses($mod, 'strip'); ?>vh; 3052 3055 } 3053 3056 <?php echo (get_theme_mod('site_wide_header_height') ? '' : '.home'); ?>.admin-bar #masthead { 3054 min-height: calc(<?php echo $mod; ?>vh - 32px);3057 min-height: calc(<?php echo wp_kses($mod, 'strip'); ?>vh - 32px); 3055 3058 } 3056 3059 @media screen and (max-width: 782px) { 3057 3060 <?php echo (get_theme_mod('site_wide_header_height') ? '' : '.home'); ?>.admin-bar #masthead { 3058 min-height: calc(<?php echo $mod; ?>vh - 46px);3061 min-height: calc(<?php echo wp_kses($mod, 'strip'); ?>vh - 46px); 3059 3062 } 3060 3063 } … … 3103 3106 ?> 3104 3107 #masthead-wrapper {<?php if ($header_color) { ?> 3105 background-color: <?php echo $header_color; ?>;<?php } if ($header_image) { ?>3106 background-image: url("<?php echo (wp_get_attachment_image_src($header_image, 'full') ? wp_get_attachment_image_src($header_image, 'full')[0] : ''); ?>");<?php } ?>3108 background-color: <?php echo wp_kses($header_color, 'strip'); ?>;<?php } if ($header_image) { ?> 3109 background-image: url("<?php echo esc_url(wp_get_attachment_image_src($header_image, 'full') ? wp_get_attachment_image_src($header_image, 'full')[0] : ''); ?>");<?php } ?> 3107 3110 background-size: cover; 3108 3111 background-repeat: no-repeat;<?php if (get_theme_mod('fix_header_background_image')) { ?> … … 3126 3129 ?> 3127 3130 .site-header { 3128 padding-top: <?php echo ($this->oftto_are_title_and_tagline_displayed() ? round($mod * 22.5 / 72, 1) . 'px' : '74px'); ?>;3131 padding-top: <?php echo wp_kses(($this->oftto_are_title_and_tagline_displayed() ? round($mod * 22.5 / 72, 1) . 'px' : '74px'), 'strip'); ?>; 3129 3132 } 3130 3133 @media only screen and (min-width: 482px) { 3131 3134 .site-header { 3132 padding-top: <?php echo round($mod * 40 / 72, 1); ?>px;3135 padding-top: <?php echo wp_kses(round($mod * 40 / 72, 1), 'strip'); ?>px; 3133 3136 } 3134 3137 } 3135 3138 @media only screen and (min-width: 822px) { 3136 3139 .site-header { 3137 padding-top: <?php echo $mod; ?>px;3140 padding-top: <?php echo wp_kses($mod, 'strip'); ?>px; 3138 3141 } 3139 3142 } … … 3149 3152 ?> 3150 3153 .site-header { 3151 padding-bottom: <?php echo round($mod * 60 / 90, 1); ?>px;3154 padding-bottom: <?php echo wp_kses(round($mod * 60 / 90, 1), 'strip'); ?>px; 3152 3155 } 3153 3156 @media only screen and (min-width: 482px) { 3154 3157 .site-header { 3155 padding-bottom: <?php echo round($mod * 40 / 90, 1); ?>px;3158 padding-bottom: <?php echo wp_kses(round($mod * 40 / 90, 1), 'strip'); ?>px; 3156 3159 } 3157 3160 } 3158 3161 @media only screen and (min-width: 822px) { 3159 3162 .site-header { 3160 padding-bottom: <?php echo $mod; ?>px;3163 padding-bottom: <?php echo wp_kses($mod, 'strip'); ?>px; 3161 3164 } 3162 3165 } … … 3192 3195 ?> 3193 3196 .site-header .site-logo .custom-logo { 3194 max-width: <?php echo $mod; ?>px;3197 max-width: <?php echo wp_kses($mod, 'strip'); ?>px; 3195 3198 max-height: none; 3196 3199 width: 100%; … … 3214 3217 3215 3218 ?> 3216 @media screen and (max-width: <?php echo $mobile_breakpoint; ?>px) {3219 @media screen and (max-width: <?php echo wp_kses($mobile_breakpoint, 'strip'); ?>px) { 3217 3220 .site-branding, .site-header:not(.has-logo).has-title-and-tagline .site-branding { 3218 3221 width: 100%; … … 3225 3228 3226 3229 ?> 3227 @media screen and (min-width: <?php echo $mobile_breakpoint + 1; ?>px) {3230 @media screen and (min-width: <?php echo wp_kses($mobile_breakpoint + 1, 'strip'); ?>px) { 3228 3231 .site-branding, .site-header:not(.has-logo).has-title-and-tagline .site-branding { 3229 3232 width: 100%; … … 3253 3256 ?> 3254 3257 .site-title { 3255 font-size: <?php echo $mod / 1000; ?>rem;3258 font-size: <?php echo wp_kses($mod / 1000, 'strip'); ?>rem; 3256 3259 } 3257 3260 <?php … … 3385 3388 } 3386 3389 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3390 if (get_theme_mod('mobile_submenus_on_desktop')) { 3399 3391 … … 3409 3401 3410 3402 ?> 3411 @media only screen and (min-width: 481px) and (max-width: <?php echo $mobile_breakpoint; ?>px) {3403 @media only screen and (min-width: 481px) and (max-width: <?php echo wp_kses($mobile_breakpoint, 'strip'); ?>px) { 3412 3404 <?php 3413 3405 … … 3541 3533 if ($mod) { 3542 3534 ?> 3543 @media only screen and (max-width: <?php echo $mobile_breakpoint; ?>px) {3535 @media only screen and (max-width: <?php echo wp_kses($mobile_breakpoint, 'strip'); ?>px) { 3544 3536 <?php 3545 3537 … … 3588 3580 if ($mod) { 3589 3581 ?> 3590 @media only screen and (min-width: <?php echo $mobile_breakpoint + 1; ?>px) {3582 @media only screen and (min-width: <?php echo wp_kses($mobile_breakpoint + 1, 'strip'); ?>px) { 3591 3583 <?php 3592 3584 … … 3641 3633 ?> 3642 3634 .primary-navigation > .primary-menu-container, .primary-navigation-open .primary-navigation > .primary-menu-container { 3643 border-width: <?php echo $mod; ?>px;3635 border-width: <?php echo wp_kses($mod, 'strip'); ?>px; 3644 3636 } 3645 3637 <?php … … 3655 3647 3656 3648 ?> 3657 @media only screen and (min-width: <?php echo $mobile_breakpoint + 1; ?>px) {3649 @media only screen and (min-width: <?php echo wp_kses($mobile_breakpoint + 1, 'strip'); ?>px) { 3658 3650 .primary-navigation { 3659 padding: <?php echo $mod; ?>px 0;3651 padding: <?php echo wp_kses($mod, 'strip'); ?>px 0; 3660 3652 } 3661 3653 } … … 3682 3674 @media only screen and (max-width: 481px) { 3683 3675 .menu-button-container .button.button .dropdown-icon.open .svg-icon { 3684 width: <?php echo $mod; ?>px;3685 height: <?php echo $mod; ?>px;3676 width: <?php echo wp_kses($mod, 'strip'); ?>px; 3677 height: <?php echo wp_kses($mod, 'strip'); ?>px; 3686 3678 } 3687 3679 } … … 3695 3687 @media only screen and (min-width: 482px) { 3696 3688 .menu-button-container .button.button .dropdown-icon.open .svg-icon { 3697 width: <?php echo (($mod - 24) / 2) + 24; ?>px;3698 height: <?php echo (($mod - 24) / 2) + 24; ?>px;3689 width: <?php echo wp_kses((($mod - 24) / 2) + 24, 'strip'); ?>px; 3690 height: <?php echo wp_kses((($mod - 24) / 2) + 24, 'strip'); ?>px; 3699 3691 } 3700 3692 } 3701 3693 @media only screen and (min-width: 822px) { 3702 3694 .menu-button-container .button.button .dropdown-icon.open .svg-icon { 3703 width: <?php echo $mod; ?>px;3704 height: <?php echo $mod; ?>px;3695 width: <?php echo wp_kses($mod, 'strip'); ?>px; 3696 height: <?php echo wp_kses($mod, 'strip'); ?>px; 3705 3697 } 3706 3698 } … … 3728 3720 @media only screen and (max-width: 481px) { 3729 3721 .primary-navigation a:link, .primary-navigation a:visited { 3730 color: <?php echo $mod; ?>;3722 color: <?php echo wp_kses($mod, 'strip'); ?>; 3731 3723 } 3732 3724 } … … 3740 3732 @media only screen and (max-width: 481px) { 3741 3733 .primary-navigation a:hover { 3742 color: <?php echo $mod; ?>;3734 color: <?php echo wp_kses($mod, 'strip'); ?>; 3743 3735 } 3744 3736 } … … 3753 3745 3754 3746 ?> 3755 @media only screen and (min-width: <?php echo $mobile_breakpoint + 1; ?>px) {3747 @media only screen and (min-width: <?php echo wp_kses($mobile_breakpoint + 1, 'strip'); ?>px) { 3756 3748 .primary-navigation .primary-menu-container > ul > .menu-item > a { 3757 padding: <?php echo $size / 1000 * 0.75; ?>rem;3758 font-size: <?php echo $size / 1000; ?>rem;3759 line-height: <?php echo $size / 1000; ?>rem;3749 padding: <?php echo wp_kses($size / 1000 * 0.75, 'strip'); ?>rem; 3750 font-size: <?php echo wp_kses($size / 1000, 'strip'); ?>rem; 3751 line-height: <?php echo wp_kses($size / 1000, 'strip'); ?>rem; 3760 3752 } 3761 3753 .primary-navigation .primary-menu-container > ul > #menu-item-search > .svg-icon { 3762 width: <?php echo $size / 1000; ?>rem;3763 height: <?php echo $size / 1000; ?>rem;3754 width: <?php echo wp_kses($size / 1000, 'strip'); ?>rem; 3755 height: <?php echo wp_kses($size / 1000, 'strip'); ?>rem; 3764 3756 } 3765 3757 .primary-navigation > div > .menu-wrapper .sub-menu-toggle { 3766 height: <?php echo $size / 1000 * 2.5; ?>rem;3758 height: <?php echo wp_kses($size / 1000 * 2.5, 'strip'); ?>rem; 3767 3759 } 3768 3760 .primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-plus svg, .primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-minus svg { 3769 height: <?php echo $size / 1000; ?>rem;3770 width: <?php echo $size / 1000; ?>rem;3761 height: <?php echo wp_kses($size / 1000, 'strip'); ?>rem; 3762 width: <?php echo wp_kses($size / 1000, 'strip'); ?>rem; 3771 3763 margin-top: 0; 3772 margin-right: <?php echo $size / 1000 * 0.15; ?>rem;3764 margin-right: <?php echo wp_kses($size / 1000 * 0.15, 'strip'); ?>rem; 3773 3765 } 3774 3766 .primary-navigation > div > .menu-wrapper .sub-menu-toggle { 3775 width: <?php echo $size / 1000 * 2; ?>rem;3767 width: <?php echo wp_kses($size / 1000 * 2, 'strip'); ?>rem; 3776 3768 } 3777 3769 } … … 3788 3780 3789 3781 ?> 3790 @media only screen and (min-width: <?php echo $mobile_breakpoint + 1; ?>px) {3782 @media only screen and (min-width: <?php echo wp_kses($mobile_breakpoint + 1, 'strip'); ?>px) { 3791 3783 .primary-navigation .primary-menu-container > ul > .menu-item > a { 3792 padding-left: <?php echo round($size * $mod, 2); ?>rem;3793 padding-right: <?php echo round($size * $mod, 2); ?>rem;3784 padding-left: <?php echo wp_kses(round($size * $mod, 2), 'strip'); ?>rem; 3785 padding-right: <?php echo wp_kses(round($size * $mod, 2), 'strip'); ?>rem; 3794 3786 } 3795 3787 } … … 3805 3797 ?> 3806 3798 .primary-navigation .sub-menu { 3807 border-color: <? = $mod; ?>;3799 border-color: <?php echo wp_kses($mod, 'strip'); ?>; 3808 3800 } 3809 3801 @media only screen and (min-width: 482px) { 3810 3802 .primary-navigation > div > .menu-wrapper > li > .sub-menu:before, 3811 3803 .primary-navigation > div > .menu-wrapper > li > .sub-menu:after { 3812 border-color: <? = $mod; ?> transparent;3804 border-color: <?php echo wp_kses($mod, 'strip'); ?> transparent; 3813 3805 } 3814 3806 } … … 3824 3816 @media only screen and (min-width: 482px) { 3825 3817 .primary-navigation > div > .menu-wrapper > li > .sub-menu:after { 3826 border-bottom-color: <?php echo $mod; ?>;3818 border-bottom-color: <?php echo wp_kses($mod, 'strip'); ?>; 3827 3819 } 3828 3820 .primary-navigation > div > .menu-wrapper > li > .sub-menu, .primary-navigation > div > .menu-wrapper > li > .sub-menu li { 3829 background-color: <?php echo $mod; ?>;3821 background-color: <?php echo wp_kses($mod, 'strip'); ?>; 3830 3822 } 3831 3823 } … … 3837 3829 if ($mod) { 3838 3830 ?> 3839 @media only screen and (min-width: <?php echo $mobile_breakpoint + 1; ?>px) {3831 @media only screen and (min-width: <?php echo wp_kses($mobile_breakpoint + 1, 'strip'); ?>px) { 3840 3832 .primary-navigation .sub-menu .menu-item > a:link, .primary-navigation .sub-menu .menu-item > a:visited { 3841 color: <?php echo $mod; ?>;3833 color: <?php echo wp_kses($mod, 'strip'); ?>; 3842 3834 } 3843 3835 } … … 3850 3842 ?> 3851 3843 .primary-navigation .sub-menu .menu-item > a { 3852 font-size: <?php echo $mod / 1000 * 1.125; ?>rem;3844 font-size: <?php echo wp_kses($mod / 1000 * 1.125, 'strip'); ?>rem; 3853 3845 } 3854 3846 @media only screen and (min-width: 482px) { 3855 3847 .primary-navigation .sub-menu .menu-item > a { 3856 font-size: <?php echo $mod / 1000; ?>rem;3848 font-size: <?php echo wp_kses($mod / 1000, 'strip'); ?>rem; 3857 3849 } 3858 3850 } … … 3896 3888 ?> 3897 3889 .entry-title { 3898 font-size: <?php echo $mod / 1000 * 0.9; ?>rem;3890 font-size: <?php echo wp_kses($mod / 1000, 'strip'); ?>rem; 3899 3891 } 3900 3892 @media only screen and (min-width: 652px) { 3901 3893 .entry-title { 3902 font-size: <?php echo $mod / 1000; ?>rem;3894 font-size: <?php echo wp_kses($mod / 1000, 'strip'); ?>rem; 3903 3895 } 3904 3896 } … … 3913 3905 ?> 3914 3906 .site-main > article .entry-content { 3915 margin-top: <?php echo $mod - 1; ?>px;3907 margin-top: <?php echo wp_kses($mod - 1, 'strip'); ?>px; 3916 3908 } 3917 3909 @media only screen and (min-width: 482px) { 3918 3910 .site-main > article .entry-content { 3919 margin-top: <?php echo round(($mod - 1) / 3 * 2, 1); ?>px;3911 margin-top: <?php echo wp_kses(round(($mod - 1) / 3 * 2, 1), 'strip'); ?>px; 3920 3912 } 3921 3913 } … … 3937 3929 ?> 3938 3930 .comments-title, .comment-reply-title { 3939 font-size: <?php echo $mod / 1000 * 0.75; ?>rem;3931 font-size: <?php echo wp_kses($mod / 1000 * 0.75, 'strip'); ?>rem; 3940 3932 } 3941 3933 @media only screen and (min-width: 652px) { 3942 3934 .comments-title, .comment-reply-title { 3943 font-size: <?php echo $mod / 1000; ?>rem;3935 font-size: <?php echo wp_kses($mod / 1000, 'strip'); ?>rem; 3944 3936 } 3945 3937 } … … 3968 3960 ?> 3969 3961 #footer-wrapper {<?php if ($footer_color) { ?> 3970 background-color: <?php echo $footer_color; ?>;<?php } if ($footer_image) { ?>3971 background-image: url("<?php echo (wp_get_attachment_image_src($footer_image, 'full') ? wp_get_attachment_image_src($footer_image, 'full')[0] : ''); ?>");<?php } ?>3962 background-color: <?php echo wp_kses($footer_color, 'strip'); ?>;<?php } if ($footer_image) { ?> 3963 background-image: url("<?php echo esc_url(wp_get_attachment_image_src($footer_image, 'full') ? wp_get_attachment_image_src($footer_image, 'full')[0] : ''); ?>");<?php } ?> 3972 3964 background-size: cover; 3973 3965 background-repeat: no-repeat; … … 3989 3981 ?> 3990 3982 .widget-area, .no-widgets .site-footer { 3991 margin-top: <?php echo $mod -1; ?>px;3983 margin-top: <?php echo wp_kses($mod -1, 'strip'); ?>px; 3992 3984 } 3993 3985 @media only screen and (max-width: 481px) { 3994 3986 .widget-area { 3995 margin-top: <?php echo ceil(($mod -1) / 2); ?>px;3987 margin-top: <?php echo wp_kses(ceil(($mod -1) / 2), 'strip'); ?>px; 3996 3988 } 3997 3989 } … … 4005 3997 .widget-area { 4006 3998 display: grid; 4007 grid-template-columns: repeat(<?php echo $mod; ?>, 1fr);3999 grid-template-columns: repeat(<?php echo wp_kses($mod, 'strip'); ?>, 1fr); 4008 4000 column-gap: calc(2 * var(--global--spacing-horizontal)); 4009 4001 } … … 4017 4009 @media only screen and (min-width: 652px) { 4018 4010 .widget-area { 4019 grid-template-columns: repeat(<?php echo $mod; ?>, 1fr);4011 grid-template-columns: repeat(<?php echo wp_kses($mod, 'strip'); ?>, 1fr); 4020 4012 } 4021 4013 } … … 4029 4021 @media only screen and (min-width: 1024px) { 4030 4022 .widget-area { 4031 grid-template-columns: repeat(<?php echo $mod; ?>, 1fr);4023 grid-template-columns: repeat(<?php echo wp_kses($mod, 'strip'); ?>, 1fr); 4032 4024 } 4033 4025 } … … 4042 4034 @media only screen and (min-width: 822px) { 4043 4035 .site-footer { 4044 max-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), <?php echo $mod; ?>px);4036 max-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), <?php echo wp_kses($mod, 'strip'); ?>px); 4045 4037 } 4046 4038 } 4047 @media only screen and (min-width: 822px) and (max-width: <?php echo $mod + 200; ?>px) {4039 @media only screen and (min-width: 822px) and (max-width: <?php echo wp_kses($mod + 200, 'strip'); ?>px) { 4048 4040 .site-footer { 4049 4041 max-width: calc(100vw - 200px); 4050 4042 } 4051 4043 } 4052 @media only screen and (min-width: <?php echo $mod + 201; ?>px) {4044 @media only screen and (min-width: <?php echo wp_kses($mod + 201, 'strip'); ?>px) { 4053 4045 .site-footer { 4054 max-width: <?php echo $mod; ?>px;4046 max-width: <?php echo wp_kses($mod, 'strip'); ?>px; 4055 4047 } 4056 4048 } … … 4097 4089 ?> 4098 4090 .site-footer .site-logo .custom-logo { 4099 max-width: <?php echo $mod; ?>px;4091 max-width: <?php echo wp_kses($mod, 'strip'); ?>px; 4100 4092 max-height: none; 4101 4093 width: 100%; … … 4352 4344 if ($breadcrumbs) { 4353 4345 4354 echo '<div id="breadcrumbs" class="alignwide">' . $breadcrumbs . '</div>';4346 echo wp_kses('<div id="breadcrumbs" class="alignwide">' . $breadcrumbs . '</div>', 'post'); 4355 4347 4356 4348 } elseif (function_exists('bcn_display')) { … … 4549 4541 <?php 4550 4542 printf( 4551 __('This plugin requires the default Wordpress theme Twenty Twenty-One to be active or live previewed in order to function. Your theme "%s" is not compatible.', 'options-for-twenty-twenty-one'), 4552 get_template() 4543 /* translators: active theme slug */ 4544 esc_html(__('This plugin requires the default Wordpress theme Twenty Twenty-One to be active or live previewed in order to function. Your theme "%s" is not compatible.', 'options-for-twenty-twenty-one')), 4545 esc_html(get_template()) 4553 4546 ); 4554 4547 ?> 4555 4548 4556 <a href="<?php echo add_query_arg('search', 'twentytwentyone', admin_url('theme-install.php')); ?>" title="<?php esc_attr_e('Twenty Twenty-One', 'options-for-twenty-twenty-one'); ?>"><?php4549 <a href="<?php echo esc_url(add_query_arg('search', 'twentytwentyone', admin_url('theme-install.php'))); ?>" title="<?php esc_attr_e('Twenty Twenty-One', 'options-for-twenty-twenty-one'); ?>"><?php 4557 4550 esc_html_e('Please install and activate or live preview the Twenty Twenty-One theme (or a child theme thereof)', 'options-for-twenty-twenty-one'); 4558 4551 ?></a>.</p> -
options-for-twenty-twenty-one/trunk/readme.txt
r3412272 r3418400 6 6 Tested up to: 6.9 7 7 Requires PHP: 5.6 8 Stable tag: 1.7. 88 Stable tag: 1.7.9 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 225 225 == Changelog == 226 226 227 = 1.7.9 = 228 * General housekeeping preparing for "Plugin Check" code review 229 227 230 = 1.7.8 = 228 231 * Remove Customizer CSS due to incompatible change introduced in WordPress v6.7 … … 528 531 == Upgrade Notice == 529 532 530 = 1.7. 8=531 * Remove Customizer CSS due to incompatible change introduced in WordPress v6.7533 = 1.7.9 = 534 * General housekeeping preparing for "Plugin Check" code review
Note: See TracChangeset
for help on using the changeset viewer.