AMP for WP – Accelerated Mobile Pages - Version 0.9.97.20

Version Description

(29th October 2018) = * Fixed: Plugin Vulnerability #2650

Full changelog available in changelog.txt

Download this release

Release Info

Developer mohammed_kaludi
Plugin Icon 128x128 AMP for WP – Accelerated Mobile Pages
Version 0.9.97.20
Comparing to
See all releases

Code changes from version 0.9.97.19 to 0.9.97.20

Files changed (143) hide show
  1. README.md +4 -1
  2. accelerated-moblie-pages.php +33 -18
  3. base_remover/base_remover.php +8 -9
  4. changelog.txt +1819 -0
  5. classes/class-ampforwp-instagram-sanitizer.php +5 -0
  6. classes/class-ampforwp-walker-nav-menu.php +18 -6
  7. classes/class-ampforwp-youtube-embed.php +8 -1
  8. classes/class-init.php +7 -1
  9. components/author-box/author-box.php +6 -7
  10. components/breadcrumb/breadcrumb.php +23 -23
  11. components/call-now/call-now.php +1 -0
  12. components/categories-tags/categories-tags.php +7 -14
  13. components/comments/comments.php +14 -14
  14. components/components-core.php +71 -79
  15. components/gdpr/gdpr.php +8 -4
  16. components/logo/logo.php +3 -4
  17. components/loop/loop.php +17 -17
  18. components/menu/menu.php +14 -1
  19. components/post-navigation/post-navigation.php +2 -2
  20. components/post-pagination/post-pagination.php +4 -4
  21. components/related-posts/related-posts.php +3 -3
  22. components/search/search.php +6 -7
  23. components/sidebar/sidebar.php +10 -10
  24. components/social-icons/social-icons.php +17 -17
  25. components/theme-loader.php +2 -35
  26. feeds/instant-article-feed.php +8 -9
  27. includes/admin-script.js +8 -100
  28. includes/change-log.php +6 -1
  29. includes/includes.php +16 -3
  30. includes/module-upgrade.js +102 -0
  31. includes/modules-upgrade.php +60 -88
  32. includes/modules/ampforwp-blurb.php +26 -29
  33. includes/modules/ampforwp-button.php +24 -69
  34. includes/newsletter.php +12 -35
  35. includes/options/admin-config.php +980 -1161
  36. includes/options/extensions/amp_slider/amp_slider/field_amp_slider.php +41 -42
  37. includes/options/extensions/checkbox_hierarchy/checkbox_hierarchy/field_checkbox_hierarchy.php +3 -3
  38. includes/options/extensions/demolink_image_select/demolink_image_select/field_demolink_image_select.php +7 -7
  39. includes/options/extensions/vendor_support/extension_vendor_support.php +1 -1
  40. includes/redirect.php +7 -3
  41. includes/thirdparty-compatibility.php +7 -7
  42. includes/updater/update.php +48 -36
  43. includes/vendor/amp/amp.php +7 -0
  44. includes/vendor/amp/includes/admin/class-amp-customizer.php +2 -2
  45. includes/vendor/amp/includes/admin/functions.php +2 -2
  46. includes/vendor/amp/includes/class-amp-post-template.php +3 -3
  47. includes/vendor/amp/includes/settings/class-amp-customizer-design-settings.php +6 -6
  48. includes/vendor/amp/templates/footer.php +2 -2
  49. includes/vendor/aq_resizer.php +14 -2
  50. includes/vendor/tinymce-widget/includes/class-admin-pointer.php +2 -2
  51. includes/vendor/tinymce-widget/includes/class-admin.php +7 -7
  52. includes/vendor/tinymce-widget/includes/class-widget.php +2 -2
  53. includes/vendor/tinymce-widget/tinymce-widget.php +20 -11
  54. includes/welcome.php +32 -268
  55. install/assets/js/merlin.js +25 -14
  56. install/index.php +69 -50
  57. pagebuilder/amp-page-builder.php +20 -18
  58. pagebuilder/components/fieldsTemplate.php +3 -1
  59. pagebuilder/components/modulePopupTemplate.php +2 -0
  60. pagebuilder/components/modulesHtmlTemplate.php +5 -4
  61. pagebuilder/components/pbSettingTemplates.php +13 -12
  62. pagebuilder/config/moduleTemplate.php +2 -0
  63. pagebuilder/functions.php +13 -8
  64. pagebuilder/inc/admin-amp-page-builder.js +5 -4
  65. pagebuilder/inc/adminAjaxContents.php +77 -5
  66. pagebuilder/inc/amppb_save_data.php +10 -1
  67. pagebuilder/inc/js-templates.php +3 -9
  68. pagebuilder/inc/viewShowFrontData.php +21 -4
  69. pagebuilder/layouts/swift-layouts/1-landing-layout.php +2 -0
  70. pagebuilder/layouts/swift-layouts/2-features-layout.php +2 -0
  71. pagebuilder/layouts/swift-layouts/3-pricing-layout.php +2 -0
  72. pagebuilder/modules/accordion-mod-module.php +2 -0
  73. pagebuilder/modules/adsense-ad-module.php +2 -1
  74. pagebuilder/modules/blurb-mod-module.php +2 -0
  75. pagebuilder/modules/blurb-module.php +2 -0
  76. pagebuilder/modules/button-mod-module.php +2 -0
  77. pagebuilder/modules/button-module.php +4 -1
  78. pagebuilder/modules/code-module.php +2 -1
  79. pagebuilder/modules/contact-form-shortcode-module.php +2 -0
  80. pagebuilder/modules/contents-module.php +2 -0
  81. pagebuilder/modules/counter-mod-module.php +2 -0
  82. pagebuilder/modules/cta-mod-module.php +2 -0
  83. pagebuilder/modules/feature-mod-module.php +2 -0
  84. pagebuilder/modules/gallery-module.php +2 -0
  85. pagebuilder/modules/heading-module.php +2 -0
  86. pagebuilder/modules/icons-mod-module.php +2 -0
  87. pagebuilder/modules/image-mod-module.php +2 -0
  88. pagebuilder/modules/image-module.php +2 -0
  89. pagebuilder/modules/list-mod-module.php +2 -0
  90. pagebuilder/modules/pricing-mod-module.php +2 -0
  91. pagebuilder/modules/slider-mod-module.php +2 -0
  92. pagebuilder/modules/testimonial-mod-module.php +2 -0
  93. pagebuilder/modules/text-mod-module.php +2 -0
  94. pagebuilder/modules/text-module.php +4 -1
  95. pagebuilder/modules/video-module.php +2 -0
  96. readme.txt +6 -1815
  97. templates/ampforwp-custom-post-type.php +4 -0
  98. templates/category-widget.php +28 -24
  99. templates/custom-amp-content.php +15 -8
  100. templates/custom-sanitizer.php +7 -3
  101. templates/customizer/customizer-controls.php +4 -0
  102. templates/customizer/customizer-new.php +15 -35
  103. templates/customizer/customizer.php +15 -35
  104. templates/design-manager.php +4 -0
  105. templates/design-manager/design-1/404.php +2 -2
  106. templates/design-manager/design-1/archive.php +5 -5
  107. templates/design-manager/design-1/elements/bread-crumbs.php +22 -22
  108. templates/design-manager/design-1/elements/comments.php +5 -5
  109. templates/design-manager/design-1/elements/content.php +1 -1
  110. templates/design-manager/design-1/elements/meta-info.php +1 -1
  111. templates/design-manager/design-1/elements/meta-taxonomy.php +8 -8
  112. templates/design-manager/design-1/elements/related-posts.php +1 -1
  113. templates/design-manager/design-1/elements/simple-comment-button.php +1 -1
  114. templates/design-manager/design-1/elements/social-icons.php +1 -1
  115. templates/design-manager/design-1/elements/title.php +1 -1
  116. templates/design-manager/design-1/footer.php +5 -5
  117. templates/design-manager/design-1/frontpage.php +1 -1
  118. templates/design-manager/design-1/header-bar.php +1 -1
  119. templates/design-manager/design-1/index.php +4 -4
  120. templates/design-manager/design-1/search.php +5 -5
  121. templates/design-manager/design-1/single.php +1 -1
  122. templates/design-manager/design-1/style.php +6 -6
  123. templates/design-manager/design-2/404.php +2 -2
  124. templates/design-manager/design-2/archive.php +4 -4
  125. templates/design-manager/design-2/elements/bread-crumbs.php +26 -27
  126. templates/design-manager/design-2/elements/comments.php +7 -7
  127. templates/design-manager/design-2/elements/content.php +3 -3
  128. templates/design-manager/design-2/elements/meta-info.php +3 -7
  129. templates/design-manager/design-2/elements/meta-taxonomy.php +7 -7
  130. templates/design-manager/design-2/elements/related-posts.php +1 -1
  131. templates/design-manager/design-2/elements/simple-comment-button.php +1 -1
  132. templates/design-manager/design-2/elements/social-icons.php +2 -2
  133. templates/design-manager/design-2/elements/title.php +1 -1
  134. templates/design-manager/design-2/footer.php +4 -4
  135. templates/design-manager/design-2/frontpage.php +1 -1
  136. templates/design-manager/design-2/header-bar.php +2 -2
  137. templates/design-manager/design-2/index.php +3 -3
  138. templates/design-manager/design-2/search.php +4 -4
  139. templates/design-manager/design-2/single.php +1 -1
  140. templates/design-manager/design-2/style.php +2 -2
  141. templates/design-manager/design-3/404.php +2 -2
  142. templates/design-manager/design-3/archive.php +9 -9
  143. templates/design-manager/design-3/elements/bread-crumbs.php +26 -27
README.md CHANGED
@@ -4,7 +4,7 @@ Tags: AMP, accelerated mobile pages, mobile, amp project, google amp, amp wp, go
4
  Donate link: https://www.paypal.me/Kaludi/25
5
  Requires at least: 3.0
6
  Tested up to: 4.9.8
7
- Stable tag: 0.9.97.19
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -183,6 +183,9 @@ You can contact us from [here](https://ampforwp.com/contact/)
183
 
184
  == Changelog ==
185
 
 
 
 
186
  = 0.9.97.19 (4th October 2018) =
187
  * Fixed: Tables overflow not working in swift theme #2392
188
  * Fixed: Null check added to fix null reference exception #2526
4
  Donate link: https://www.paypal.me/Kaludi/25
5
  Requires at least: 3.0
6
  Tested up to: 4.9.8
7
+ Stable tag: 0.9.97.20
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
183
 
184
  == Changelog ==
185
 
186
+ = 0.9.97.20 (29th October 2018) =
187
+ * Fixed: Plugin Vulnerability #2650
188
+
189
  = 0.9.97.19 (4th October 2018) =
190
  * Fixed: Tables overflow not working in swift theme #2392
191
  * Fixed: Null check added to fix null reference exception #2526
accelerated-moblie-pages.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Accelerated Mobile Pages
4
  Plugin URI: https://wordpress.org/plugins/accelerated-mobile-pages/
5
  Description: AMP for WP - Accelerated Mobile Pages for WordPress
6
- Version: 0.9.97.19
7
  Author: Ahmed Kaludi, Mohammed Kaludi
8
  Author URI: https://ampforwp.com/
9
  Donate link: https://www.paypal.me/Kaludi/25
@@ -20,7 +20,7 @@ define('AMPFORWP_PLUGIN_DIR_URI', plugin_dir_url(__FILE__));
20
  define('AMPFORWP_DISQUS_URL',plugin_dir_url(__FILE__).'includes/disqus.html');
21
  define('AMPFORWP_IMAGE_DIR',plugin_dir_url(__FILE__).'images');
22
  define('AMPFORWP_MAIN_PLUGIN_DIR', plugin_dir_path( __DIR__ ) );
23
- define('AMPFORWP_VERSION','0.9.97.19');
24
  // any changes to AMP_QUERY_VAR should be refelected here
25
  function ampforwp_generate_endpoint(){
26
  $ampforwp_slug = '';
@@ -495,8 +495,8 @@ if ( is_admin() ) {
495
  if ( ! isset($plugin))
496
  $plugin = plugin_basename(__FILE__);
497
  if ( $plugin === $plugin_file ) {
498
- $settings = array( 'settings' => '<a href="admin.php?page=amp_options&tab=8">' . __('Settings', 'accelerated-mobile-pages') . '</a> | <a href="https://ampforwp.com/extensions/#utm_source=plugin-panel&utm_medium=plugin-extension&utm_campaign=features">' . __('Premium Features', 'accelerated-mobile-pages') . '</a> | <a href="https://ampforwp.com/membership/#utm_source=plugin-panel&utm_medium=plugin-extension&utm_campaign=pro">' . __('Pro', 'accelerated-mobile-pages') . '</a>' );
499
-
500
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
501
  $actions = array_merge( $actions, $settings );
502
  }
@@ -561,7 +561,7 @@ function ampforwp_bundle_core_amp_files(){
561
 
562
  define( 'AMP__FILE__', __FILE__ );
563
  if ( ! defined('AMP__DIR__') ) {
564
- define( 'AMP__DIR__', plugin_dir_path(__FILE__) . 'includes/vendor/amp/' );
565
  }
566
  if ( ! defined('AMP_QUERY_VAR') ){
567
  define('AMP_QUERY_VAR', 'amp');
@@ -599,7 +599,7 @@ function ampforwp_modify_amp_activatation_link( $actions, $plugin_file ) {
599
  if ( $plugin == $plugin_file ) {
600
  add_thickbox();
601
  unset($actions['activate']);
602
- $amp_activate = '<span style="cursor:pointer;color:#0089c8" class="warning_activate_amp" onclick="alert(\'AMP is already bundled with AMPforWP. Please do not install this plugin with AMPforWP to avoid conflicts. \')">Activate</span>';
603
  array_unshift ($actions,$amp_activate);
604
  }
605
  return $actions;
@@ -617,7 +617,7 @@ if ( ! function_exists('ampforwp_init') ) {
617
  }
618
 
619
  if ( ! defined('AMP__DIR__') ) {
620
- define( 'AMP__DIR__', plugin_dir_path(__FILE__) . 'includes/vendor/amp/' );
621
  }
622
 
623
  do_action( 'amp_init' );
@@ -643,13 +643,13 @@ if ( ! function_exists('ampforwp_init') ) {
643
  function amp_update_db_check() {
644
  global $redux_builder_amp;
645
  $ampforwp_current_version = AMPFORWP_VERSION;
646
- if ( isset( $_GET['ampforwp-dismiss-theme'] ) && trim( $_GET['ampforwp-dismiss-theme']) === "ampforwp_dismiss_admin_notices" ) {
647
  update_option( 'ampforwp_theme_notice', true );
648
  wp_redirect("admin.php?page=amp_options");
649
  }
650
  if ( get_option( 'AMPforwp_db_version' ) !== $ampforwp_current_version ) {
651
 
652
- if ( isset( $_GET['ampforwp-dismiss'] ) && trim( $_GET['ampforwp-dismiss']) === "ampforwp_dismiss_admin_notices" ) {
653
  update_option( 'AMPforwp_db_version', $ampforwp_current_version );
654
  wp_redirect(remove_query_arg('ampforwp-dismiss'), 301);
655
  }
@@ -670,13 +670,13 @@ function ampforwp_ampwptheme_notice() {
670
  if ( ('AMP WordPress Theme' == $theme->name || 'AMP WordPress Theme' == $theme->parent_theme) && true != get_option('ampforwp_theme_notice') ) {
671
  add_thickbox(); ?>
672
  <div id="some" class="notice-warning settings-error notice is-dismissible">
673
- <span style="margin: 0.5em 0.5em 0 0">AMP WordPress Theme is installed</span><br>
674
- <span style="margin: 0.5em 0.5em 0 0">One Last Step Required: <a href="#TB_inline?width=600&height=550&inlineId=my-content-id" class="thickbox">Finish Setup</a></span><br>
675
  </div>
676
  <div id="my-content-id" style="display:none;">
677
  <p>
678
  <iframe width="100%" height="480" src="https://www.youtube.com/embed/" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
679
- <a href="<?php echo esc_url(add_query_arg( 'ampforwp-dismiss-theme', 'ampforwp_dismiss_admin_notices' )) ?>">Take me to the Options Panel</a>
680
  </p>
681
  </div>
682
  <?php }
@@ -699,7 +699,7 @@ function ampforwp_ampwptheme_notice() {
699
  if ( $plugin_manager_active || $amp_plugin_manager_active ) {
700
  $screen = get_current_screen();
701
  if ( '1.0' == $amp_plugin_manager_version && 'plugins' === $screen->base) { ?>
702
- <div id="ampforwp_pluginmanager" class="notice-warning settings-error notice is-dismissible"><p><b>Attention:</b> AMPforWP Plugin Manager requires an upgrade. Please <b><a href="https://ampforwp.com/plugins-manager/?update=plugins-manager#utm_source=plugin-page&utm_medium=plugin-manager-update&utm_campaign=update-notice" target="_blank">Download &amp; install the latest version</a></b> for free.
703
  </p>
704
  </div>
705
  <?php }
@@ -714,20 +714,20 @@ function ampforwp_update_notice() {
714
  <div class="notice-success notice is-dismissible amp-update-notice">
715
  <div class="amp-update-notice-text-box">
716
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAAn1BMVEUAAADuHCXwHiTuHSTtHST/IjjuHSXuHCTvHSXvHCXwHi3/JyfuHSTuHCTvHSTvHCTxHSb/NDTyHyj0IyruHSTvHSXvHSbuHST1ICftHCXuHCXuHSXwHiXvHyfuHSTuHSTvHSXuHCTuHCTuHCTuHCTvHSXyHibuHCTuHCXuHCXuHCXuHibwICjuHCTuHCTuHSTwHSbuHCXuHCTuHCTtHCSisK2PAAAANHRSTlMA+1T35wiIxm9kEQzu4Yx/NgQlFZV6PrAa16RpUi7MhE3y3LmYXynrz5FYSSC9q55EddGypVN9ggAABlxJREFUeNrVm+mymkAQhQfZBVQEFNz3fbtm3v/ZYqUqyWww0603Vfn+mcr1wMz06QUk/yfZIPRua79KYst2Vgd/fS9aU5f8E6JFx4+pktWPryn5VtKH51u0kXgY9Mk30cv31IhZkH1e/VJU1BzrR+uzJ2I6sigQ5yv63NoPKYa42/6M/JpiWXrvr0I7p+/gnN7U3+7pm1x3BM/Op+9je+iACO2mI+aPcq8ItmHQ7WyGVVOUHHDWFI1qN3Y0HmSiSfYX3atddxhPmNCv1As6HNdvqvuYP6mSDXgbTsq78cdt7YV3HOU2lDD9QBnVZnuZnlXOkYAOwlzjaxjv3PfMs+5dvvsiAh6hofwdD1P9GxUZlQTMeSXlyAkxQrr/6kEwuF1bDKEBav87aCfrH8SDNIWf/3hB8Lgb0cMu2vgXI/9C3uK0FArXTHN4hW27p+RNdomQHZv9vxK2Hyf6ODIfSuE7u6QBIf984fQnNuc5bSGpN4RCSDlCnH7L2ghH8cofxKx2u2z+/rH6SSTu7IyyrEkN/if2f2JROXAz3hW3NfUff/7R+iNVX+Nwm6DMa+09F/8pVn+v3OIeV7PlRAFnWvEFq09PJg7bU1wiZVmg9YekBi4/z4jEmjuAaP24rG1xOEtsNS5A5eL0m73jwdWIjQv0QOtfjX32LCQhrv5B69uNZ7dcsmFWf3HLEqtPA0CtMeB8go3SAuW/8l3JpFWdIResBURYfZvpmfRma7ELXbH5GqNv+JdpIiY7OQaXbaz+08C9x4zS8+8/s1MQD6tvmXQ+LpuUpn8Whk1Dfbg+5Mo93m9li/Kx+isz99yx/arqqsZgfS6s9bDF0UWuhOw2Uj8HNP5i0RkxLjRE6ifG5pHJnr9A70DLklKLHqZfdMgvOvQvO5g+Jn3Jcj5zSTh9B3JyFlJ5HDObgtKnLQKAPXKeeCrGEH3syZ0JZ37A5mi4vroMNCyMKrEhzAD66BayYFJyyvtgjNHfp1DzFDLPjUkEAH18ATMVStO1HAR6fZbVpvPi+CJ/sXlxPzaNdF22PeBtIAfoa0garsDmz08lhCVeX+7+1DDlR/D6mGjqYZy+U1ce8Ipd3giDt/SNu9snv+aWaM14fRNvEE6dcCQ+pT829eLj66Oj2YIP6/PHfv76uOKOBF7f/D4Svjk5mM4lBjh9mSWzVvyR2DS2Vas6Reh4VahI1oYlad9MvwCVpRP+AUnV2FXNPqAvFSBSem7AnXS9X8xfdF/kPhPCZq21VIBI6RlGeeD158CyOBbTs2yg+uUEd9Y/hALEfWc4UcL1SSIOpFfs8xQgZ4i+HE2FuCQ2dEK5BuuTUNryL/yIcgLV52tQ2pYmRHOQftuB6xNHHlnH7OAIwh124dLtdhRz4ilA/4FZuFwxLw5wg/ooAenLAzErUgyOHPM+54hxj4lyIDaTl0VPDzVbvikLp0CaIetxK4x+31IOxDJL7Cj0zIH68pOxG5cfoIOyqYXRL+2azNeiwEhMZ6jHu0da09a7DnAJCpR+adcG/BcFBULfZupfXAjYJW8qjB0bzJ19lP656eltF1LZjVH6LlvXWxcxsS3Z5WmuDS9LjD6ZNz+c9yjDoXET1rr+T99YWfItRg6lZj3SFqWfcd9/1L5BdKr/phiqLz8cd5STtStlWO6aYikE63eF29O/w5KUNfkUpR8avczkUZaqrS4DMfoLi5oEmcs3Wr4qFO4Y/YFtOEDoL/mVilRl4BauH1OWofm7dLNMKgMR+gtbM0PlCwaOlWCYR4R+yOy/8IRXfwyo0+NfBjq9GX96By8TymExf+A+wfrZWtDP9al+T3mGf/asAOsPHMpzMym3l5Qnefy+Nmj+nVOBq2vUcVma14rRLxbPItM3IqnAMkih8uWNSvoZwDlEqm0Kkj8yNyH5mp6pQyWSsWvc/2xkeXoDTV8uKyrjeDuTlmFxs6hMDg3gK+hnZPIP0iQ7QVqYzKGziGpWPhw5VEnCGCrcRWSs2Yj/gWM2CDs/WA9VexneR9XY+9XTn1VJrPlvAUGzdejbXHcf/KkZ/sdmeHozisc6RuR9Wges/L1PPsPZR8jb+YV8jsHagsnvOyX5LOXX0/zmb4uUfAPTTmKy8wY/SMNzEdxW9ulzRL6bXegpfuAY+/diAb51PGn/3AqDrpcf58V4Oxlk5H/lJxdt5e+wtfWRAAAAAElFTkSuQmCC" width="128" height="128" />
717
- <div class="amp-update-notice-text"> <?php echo esc_attr('AMP has been updated to '.$ampforwp_current_version, 'accelerated-mobile-pages' ); ?></div>
718
- <a href="https://ampforwp.com/new/" target="_blank" href="admin.php?page=acmforwp_update">What's New?</a>
719
  </div>
720
  <div class="amp-update-notice-dismiss">
721
- <a title="Close this Notification" href="<?php echo esc_url(add_query_arg( 'ampforwp-dismiss', 'ampforwp_dismiss_admin_notices' )) ?>">X</a>
722
  </div>
723
  <div class="amp-update-notice-review-box">
724
- <a class="star_icon" href="https://wordpress.org/support/view/plugin-reviews/accelerated-mobile-pages?rate=5#new-post" target="_blank"> Appreciate it? <br> <span title="Give Us 5 Star">Leave a Review →</span></a>
725
  </div>
726
  </div>
727
  <?php }
728
  }
729
  if ( ! defined('AMP_FRAMEWORK_COMOPNENT_DIR_PATH') ) {
730
- define('AMP_FRAMEWORK_COMOPNENT_DIR_PATH', plugin_dir_path( __FILE__ )."/components");
731
  }
732
  require_once( AMP_FRAMEWORK_COMOPNENT_DIR_PATH . '/components-core.php' );
733
  require_once( AMPFORWP_PLUGIN_DIR. 'pagebuilder/amp-page-builder.php' );
@@ -777,4 +777,19 @@ function ampforwp_get_setting( $opt_name='' ){
777
  $opt_value = $redux_builder_amp[$opt_name];
778
  }
779
  return $opt_value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
780
  }
3
  Plugin Name: Accelerated Mobile Pages
4
  Plugin URI: https://wordpress.org/plugins/accelerated-mobile-pages/
5
  Description: AMP for WP - Accelerated Mobile Pages for WordPress
6
+ Version: 0.9.97.20
7
  Author: Ahmed Kaludi, Mohammed Kaludi
8
  Author URI: https://ampforwp.com/
9
  Donate link: https://www.paypal.me/Kaludi/25
20
  define('AMPFORWP_DISQUS_URL',plugin_dir_url(__FILE__).'includes/disqus.html');
21
  define('AMPFORWP_IMAGE_DIR',plugin_dir_url(__FILE__).'images');
22
  define('AMPFORWP_MAIN_PLUGIN_DIR', plugin_dir_path( __DIR__ ) );
23
+ define('AMPFORWP_VERSION','0.9.97.20');
24
  // any changes to AMP_QUERY_VAR should be refelected here
25
  function ampforwp_generate_endpoint(){
26
  $ampforwp_slug = '';
495
  if ( ! isset($plugin))
496
  $plugin = plugin_basename(__FILE__);
497
  if ( $plugin === $plugin_file ) {
498
+ $settings = array( 'settings' => '<a href="admin.php?page=amp_options&tab=8">' . esc_html__('Settings', 'accelerated-mobile-pages') . '</a> | <a href="https://ampforwp.com/extensions/#utm_source=plugin-panel&utm_medium=plugin-extension&utm_campaign=features">' . esc_html__('Premium Features', 'accelerated-mobile-pages') . '</a> | <a href="https://ampforwp.com/membership/#utm_source=plugin-panel&utm_medium=plugin-extension&utm_campaign=pro">' . esc_html__('Pro', 'accelerated-mobile-pages') . '</a>' );
499
+
500
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
501
  $actions = array_merge( $actions, $settings );
502
  }
561
 
562
  define( 'AMP__FILE__', __FILE__ );
563
  if ( ! defined('AMP__DIR__') ) {
564
+ define( 'AMP__DIR__', AMPFORWP_PLUGIN_DIR . 'includes/vendor/amp/' );
565
  }
566
  if ( ! defined('AMP_QUERY_VAR') ){
567
  define('AMP_QUERY_VAR', 'amp');
599
  if ( $plugin == $plugin_file ) {
600
  add_thickbox();
601
  unset($actions['activate']);
602
+ $amp_activate = '<span style="cursor:pointer;color:#0089c8" class="warning_activate_amp" onclick="alert(\''.esc_html__('AMP is already bundled with AMPforWP. Please do not install this plugin with AMPforWP to avoid conflicts', 'accelerated-mobile-pages'). '\')">Activate</span>';
603
  array_unshift ($actions,$amp_activate);
604
  }
605
  return $actions;
617
  }
618
 
619
  if ( ! defined('AMP__DIR__') ) {
620
+ define( 'AMP__DIR__', AMPFORWP_PLUGIN_DIR . 'includes/vendor/amp/' );
621
  }
622
 
623
  do_action( 'amp_init' );
643
  function amp_update_db_check() {
644
  global $redux_builder_amp;
645
  $ampforwp_current_version = AMPFORWP_VERSION;
646
+ if ( isset( $_GET['ampforwp-dismiss-theme'] ) && trim( $_GET['ampforwp-dismiss-theme']) === "ampforwp_dismiss_admin_notices" && wp_verify_nonce($_GET['ampforwp_notice'], 'ampforwp_notice') ) {
647
  update_option( 'ampforwp_theme_notice', true );
648
  wp_redirect("admin.php?page=amp_options");
649
  }
650
  if ( get_option( 'AMPforwp_db_version' ) !== $ampforwp_current_version ) {
651
 
652
+ if ( isset( $_GET['ampforwp-dismiss'] ) && trim( $_GET['ampforwp-dismiss']) === "ampforwp_dismiss_admin_notices" && wp_verify_nonce($_GET['ampforwp_notice'], 'ampforwp_notice') ) {
653
  update_option( 'AMPforwp_db_version', $ampforwp_current_version );
654
  wp_redirect(remove_query_arg('ampforwp-dismiss'), 301);
655
  }
670
  if ( ('AMP WordPress Theme' == $theme->name || 'AMP WordPress Theme' == $theme->parent_theme) && true != get_option('ampforwp_theme_notice') ) {
671
  add_thickbox(); ?>
672
  <div id="some" class="notice-warning settings-error notice is-dismissible">
673
+ <span style="margin: 0.5em 0.5em 0 0"><?php echo esc_html__('AMP WordPress Theme is installed', 'accelerated-mobile-pages'); ?></span><br>
674
+ <span style="margin: 0.5em 0.5em 0 0"><?php echo esc_html__('One Last Step Required:', 'accelerated-mobile-pages'); ?> <a href="#TB_inline?width=600&height=550&inlineId=my-content-id" class="thickbox"><?php echo esc_html__('Finish Setup', 'accelerated-mobile-pages') ?></a></span><br>
675
  </div>
676
  <div id="my-content-id" style="display:none;">
677
  <p>
678
  <iframe width="100%" height="480" src="https://www.youtube.com/embed/" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
679
+ <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'ampforwp-dismiss-theme', 'ampforwp_dismiss_admin_notices' ), 'ampforwp_notice', 'ampforwp_notice' ) ) ?>"><?php echo esc_html__('Take me to the Options Panel', 'accelerated-mobile-pages'); ?></a>
680
  </p>
681
  </div>
682
  <?php }
699
  if ( $plugin_manager_active || $amp_plugin_manager_active ) {
700
  $screen = get_current_screen();
701
  if ( '1.0' == $amp_plugin_manager_version && 'plugins' === $screen->base) { ?>
702
+ <div id="ampforwp_pluginmanager" class="notice-warning settings-error notice is-dismissible"><p><b><?php echo esc_html__(' Attention','accelerated-mobile-pages'); ?>:</b> <?php echo esc_html__(' AMPforWP Plugin Manager requires an upgrade. Please','accelerated-mobile-pages'); ?> <b><a href="https://ampforwp.com/plugins-manager/?update=plugins-manager#utm_source=plugin-page&utm_medium=plugin-manager-update&utm_campaign=update-notice" target="_blank"><?php echo esc_html__('Download &amp; install the latest version', 'accelerated-mobile-pages'); ?></a></b> <?php echo esc_html__('for free','accelerated-mobile-pages'); ?>.
703
  </p>
704
  </div>
705
  <?php }
714
  <div class="notice-success notice is-dismissible amp-update-notice">
715
  <div class="amp-update-notice-text-box">
716
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAAn1BMVEUAAADuHCXwHiTuHSTtHST/IjjuHSXuHCTvHSXvHCXwHi3/JyfuHSTuHCTvHSTvHCTxHSb/NDTyHyj0IyruHSTvHSXvHSbuHST1ICftHCXuHCXuHSXwHiXvHyfuHSTuHSTvHSXuHCTuHCTuHCTuHCTvHSXyHibuHCTuHCXuHCXuHCXuHibwICjuHCTuHCTuHSTwHSbuHCXuHCTuHCTtHCSisK2PAAAANHRSTlMA+1T35wiIxm9kEQzu4Yx/NgQlFZV6PrAa16RpUi7MhE3y3LmYXynrz5FYSSC9q55EddGypVN9ggAABlxJREFUeNrVm+mymkAQhQfZBVQEFNz3fbtm3v/ZYqUqyWww0603Vfn+mcr1wMz06QUk/yfZIPRua79KYst2Vgd/fS9aU5f8E6JFx4+pktWPryn5VtKH51u0kXgY9Mk30cv31IhZkH1e/VJU1BzrR+uzJ2I6sigQ5yv63NoPKYa42/6M/JpiWXrvr0I7p+/gnN7U3+7pm1x3BM/Op+9je+iACO2mI+aPcq8ItmHQ7WyGVVOUHHDWFI1qN3Y0HmSiSfYX3atddxhPmNCv1As6HNdvqvuYP6mSDXgbTsq78cdt7YV3HOU2lDD9QBnVZnuZnlXOkYAOwlzjaxjv3PfMs+5dvvsiAh6hofwdD1P9GxUZlQTMeSXlyAkxQrr/6kEwuF1bDKEBav87aCfrH8SDNIWf/3hB8Lgb0cMu2vgXI/9C3uK0FArXTHN4hW27p+RNdomQHZv9vxK2Hyf6ODIfSuE7u6QBIf984fQnNuc5bSGpN4RCSDlCnH7L2ghH8cofxKx2u2z+/rH6SSTu7IyyrEkN/if2f2JROXAz3hW3NfUff/7R+iNVX+Nwm6DMa+09F/8pVn+v3OIeV7PlRAFnWvEFq09PJg7bU1wiZVmg9YekBi4/z4jEmjuAaP24rG1xOEtsNS5A5eL0m73jwdWIjQv0QOtfjX32LCQhrv5B69uNZ7dcsmFWf3HLEqtPA0CtMeB8go3SAuW/8l3JpFWdIResBURYfZvpmfRma7ELXbH5GqNv+JdpIiY7OQaXbaz+08C9x4zS8+8/s1MQD6tvmXQ+LpuUpn8Whk1Dfbg+5Mo93m9li/Kx+isz99yx/arqqsZgfS6s9bDF0UWuhOw2Uj8HNP5i0RkxLjRE6ifG5pHJnr9A70DLklKLHqZfdMgvOvQvO5g+Jn3Jcj5zSTh9B3JyFlJ5HDObgtKnLQKAPXKeeCrGEH3syZ0JZ37A5mi4vroMNCyMKrEhzAD66BayYFJyyvtgjNHfp1DzFDLPjUkEAH18ATMVStO1HAR6fZbVpvPi+CJ/sXlxPzaNdF22PeBtIAfoa0garsDmz08lhCVeX+7+1DDlR/D6mGjqYZy+U1ce8Ipd3giDt/SNu9snv+aWaM14fRNvEE6dcCQ+pT829eLj66Oj2YIP6/PHfv76uOKOBF7f/D4Svjk5mM4lBjh9mSWzVvyR2DS2Vas6Reh4VahI1oYlad9MvwCVpRP+AUnV2FXNPqAvFSBSem7AnXS9X8xfdF/kPhPCZq21VIBI6RlGeeD158CyOBbTs2yg+uUEd9Y/hALEfWc4UcL1SSIOpFfs8xQgZ4i+HE2FuCQ2dEK5BuuTUNryL/yIcgLV52tQ2pYmRHOQftuB6xNHHlnH7OAIwh124dLtdhRz4ilA/4FZuFwxLw5wg/ooAenLAzErUgyOHPM+54hxj4lyIDaTl0VPDzVbvikLp0CaIetxK4x+31IOxDJL7Cj0zIH68pOxG5cfoIOyqYXRL+2azNeiwEhMZ6jHu0da09a7DnAJCpR+adcG/BcFBULfZupfXAjYJW8qjB0bzJ19lP656eltF1LZjVH6LlvXWxcxsS3Z5WmuDS9LjD6ZNz+c9yjDoXET1rr+T99YWfItRg6lZj3SFqWfcd9/1L5BdKr/phiqLz8cd5STtStlWO6aYikE63eF29O/w5KUNfkUpR8avczkUZaqrS4DMfoLi5oEmcs3Wr4qFO4Y/YFtOEDoL/mVilRl4BauH1OWofm7dLNMKgMR+gtbM0PlCwaOlWCYR4R+yOy/8IRXfwyo0+NfBjq9GX96By8TymExf+A+wfrZWtDP9al+T3mGf/asAOsPHMpzMym3l5Qnefy+Nmj+nVOBq2vUcVma14rRLxbPItM3IqnAMkih8uWNSvoZwDlEqm0Kkj8yNyH5mp6pQyWSsWvc/2xkeXoDTV8uKyrjeDuTlmFxs6hMDg3gK+hnZPIP0iQ7QVqYzKGziGpWPhw5VEnCGCrcRWSs2Yj/gWM2CDs/WA9VexneR9XY+9XTn1VJrPlvAUGzdejbXHcf/KkZ/sdmeHozisc6RuR9Wges/L1PPsPZR8jb+YV8jsHagsnvOyX5LOXX0/zmb4uUfAPTTmKy8wY/SMNzEdxW9ulzRL6bXegpfuAY+/diAb51PGn/3AqDrpcf58V4Oxlk5H/lJxdt5e+wtfWRAAAAAElFTkSuQmCC" width="128" height="128" />
717
+ <div class="amp-update-notice-text"> <?php echo esc_html__('AMP has been updated to '.$ampforwp_current_version, 'accelerated-mobile-pages' ); ?></div>
718
+ <a href="https://ampforwp.com/new/" target="_blank" href="admin.php?page=acmforwp_update"><?php echo esc_html__('What\'s New ?', 'accelerated-mobile-pages');?></a>
719
  </div>
720
  <div class="amp-update-notice-dismiss">
721
+ <a title="Close this Notification" href="<?php echo esc_url( wp_nonce_url(add_query_arg( 'ampforwp-dismiss', 'ampforwp_dismiss_admin_notices' ), 'ampforwp_notice', 'ampforwp_notice') ) ?>">X</a>
722
  </div>
723
  <div class="amp-update-notice-review-box">
724
+ <a class="star_icon" href="https://wordpress.org/support/view/plugin-reviews/accelerated-mobile-pages?rate=5#new-post" target="_blank"> <?php echo esc_html__('Appreciate it?','accelerated-mobile-pages')?> <br> <span title="Give Us 5 Star"><?php echo esc_html__('Leave a Review', 'accelerated-mobile-pages') ?> →</span></a>
725
  </div>
726
  </div>
727
  <?php }
728
  }
729
  if ( ! defined('AMP_FRAMEWORK_COMOPNENT_DIR_PATH') ) {
730
+ define('AMP_FRAMEWORK_COMOPNENT_DIR_PATH', AMPFORWP_PLUGIN_DIR ."/components");
731
  }
732
  require_once( AMP_FRAMEWORK_COMOPNENT_DIR_PATH . '/components-core.php' );
733
  require_once( AMPFORWP_PLUGIN_DIR. 'pagebuilder/amp-page-builder.php' );
777
  $opt_value = $redux_builder_amp[$opt_name];
778
  }
779
  return $opt_value;
780
+ }
781
+
782
+ // color sanitizer
783
+ function ampforwp_sanitize_color( $color ) {
784
+ if ( empty( $color ) || is_array( $color ) )
785
+ return 'rgba(0,0,0,0)';
786
+ // If string does not start with 'rgba', then treat as hex
787
+ // sanitize the hex color and finally convert hex to rgba
788
+ if ( false === strpos( $color, 'rgba' ) ) {
789
+ return sanitize_hex_color( $color );
790
+ }
791
+ // By now we know the string is formatted as an rgba color so we need to further sanitize it.
792
+ $color = str_replace( ' ', '', $color );
793
+ sscanf( $color, 'rgba(%d,%d,%d,%f)', $red, $green, $blue, $alpha );
794
+ return 'rgba('.$red.','.$green.','.$blue.','.$alpha.')';
795
  }
base_remover/base_remover.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
3
 
4
  // check for plugin using plugin name
@@ -6,10 +10,10 @@ $old_plugin = AMPFORWP_MAIN_PLUGIN_DIR.'amp-category-base-remover/amp-category-b
6
  if ( is_plugin_active( $old_plugin ) ) {
7
  //plugin is activated
8
  deactivate_plugins($old_plugin);
9
- add_action( 'admin_notices', 'plugin_catagory_base_removed_admin_notice__success' );
10
  }
11
 
12
- function plugin_catagory_base_removed_admin_notice__success(){
13
  ?>
14
  <div class="notice notice-success is-dismissible">
15
  <p><?php esc_html_e( 'AMP Category Base URL Remover plugin has De-activated, <br> Category removal option is added in our core plugin <a href="#">Click here to view details</a>', 'accelerated-mobile-pages' ); ?></p>
@@ -18,8 +22,8 @@ function plugin_catagory_base_removed_admin_notice__success(){
18
  }
19
 
20
 
21
- add_action( 'current_screen', 'this_screen_own' );
22
- function this_screen_own(){
23
  $current_screen = get_current_screen();
24
  if( $current_screen->id === "plugin-install" ) {
25
 
@@ -45,11 +49,6 @@ function ampforwp_url_base_rewrite_rules(){
45
  if( isset($redux_builder_amp['ampforwp-tag-base-removal-link']) ) {
46
  $tagBaseRewrite = $redux_builder_amp['ampforwp-tag-base-removal-link'];
47
  }
48
- /* $catagoryStatusChanges = get_option('AMP-category-base-removal-status');
49
- if($catagoryStatusChanges==$categoryBaseRewrite){
50
- update_option('AMP-category-base-removal-status',$categoryBaseRewrite);
51
- $wp_rerite->flush_rules( $hard );
52
- } */
53
  if($categoryBaseRewrite === '1'){
54
  add_action( 'created_category', 'amp_flush_rewrite_rules', 999 );
55
  add_action( 'edited_category', 'amp_flush_rewrite_rules', 999 );
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
7
 
8
  // check for plugin using plugin name
10
  if ( is_plugin_active( $old_plugin ) ) {
11
  //plugin is activated
12
  deactivate_plugins($old_plugin);
13
+ add_action( 'admin_notices', 'ampforwp_catagory_base_removal_admin_notice' );
14
  }
15
 
16
+ function ampforwp_catagory_base_removal_admin_notice(){
17
  ?>
18
  <div class="notice notice-success is-dismissible">
19
  <p><?php esc_html_e( 'AMP Category Base URL Remover plugin has De-activated, <br> Category removal option is added in our core plugin <a href="#">Click here to view details</a>', 'accelerated-mobile-pages' ); ?></p>
22
  }
23
 
24
 
25
+ add_action( 'current_screen', 'ampforwp_dependency_script' );
26
+ function ampforwp_dependency_script(){
27
  $current_screen = get_current_screen();
28
  if( $current_screen->id === "plugin-install" ) {
29
 
49
  if( isset($redux_builder_amp['ampforwp-tag-base-removal-link']) ) {
50
  $tagBaseRewrite = $redux_builder_amp['ampforwp-tag-base-removal-link'];
51
  }
 
 
 
 
 
52
  if($categoryBaseRewrite === '1'){
53
  add_action( 'created_category', 'amp_flush_rewrite_rules', 999 );
54
  add_action( 'edited_category', 'amp_flush_rewrite_rules', 999 );
changelog.txt ADDED
@@ -0,0 +1,1819 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ == Changelog ==
2
+
3
+ = 0.9.97.20 (29th October 2018) =
4
+ * Fixed: Plugin Vulnerability #2650
5
+
6
+ = 0.9.97.19 (4th October 2018) =
7
+ * Fixed: Tables overflow not working in swift theme #2392
8
+ * Fixed: Null check added to fix null reference exception #2526
9
+ * Fixed: Minor Bug related with menu
10
+
11
+ = 0.9.97.18 (29th September 2018) =
12
+ * Fixed: Minor Bug related with menu
13
+
14
+ = 0.9.97.17 (28th September 2018) =
15
+ * Added: Featured Slider "Tag" support #954
16
+ * Added: Marfeel plugin is blocking Internal pages of AMP and rendering 503 error #2423
17
+ * Fixed: Dropdown Menu arrows not working properly in Swift #2148
18
+ * Fixed: Wrong implementation of load_plugin_textdomain function #2408
19
+ * Fixed: Page Float to right and showing menu content when page scroll horizontally in iPhone device #2434
20
+ * Fixed: Internal Link Option is not Working in beta #2443
21
+ * Fixed: Missing conditional tag for get_the_tags() causing "Invalid argument supplied for foreach()" error #2456
22
+ * Fixed: Need to make a space in meta information and published date is not getting translated #2411
23
+ * Fixed: Meta og:title and description tag are Not completely Reflecting #2454
24
+ * Fixed: Images are not aligned center when published with Gutenberg Editor #2462
25
+ * Fixed: Anchor Tag is not working because there is a space in between link #2465
26
+ * Fixed: Fix social shares icons #2467
27
+ * Fixed: Debug errors in beta #2472
28
+ * Fixed: homepage is getting blank when "Convert To WP" is enable only for posts #2493
29
+ * Fixed: wrong amphtml URL generating for WPML #2573
30
+
31
+ = 0.9.97.16 (19th September 2018) =
32
+ * Added: 3 Types of Gallery designs #1968
33
+ * Added: New Section to show 'change log' on Welcome Page #1753
34
+ * Added: Allow HTML in footer section of translation panel in design 3 #1950
35
+ * Added: Need to make the compatibility with The Voux theme #2263
36
+ * Fixed: Special character "|" breaking the url in the twitter share #2264
37
+ * Added: Read more button for post on blog page #2273
38
+ * Fixed: Category Labels are Clickable on Swift Homepage even Archive support is off #2279
39
+ * Fixed: Above Loop and Below Loop Sidebar Widget area is not connected with Swift theme #2280
40
+ * Fixed: Aq_Resize.process() errors for images hosted on CDN #2285
41
+ * Fixed: Convert to WP Option is displayed in Swift Theme, but not in Design 3. #2291
42
+ * Fixed: Need to have only one text-domain in the string of the plugin #2292
43
+ * Fixed: Bug in Facebook comments. #2300
44
+ * Added: Beta Testing link in the Options panel #2302
45
+ * Added: "X" button in the menu of D3 #2294
46
+ * Fixed: AMP Take over is applying even on product when this option is enabled only for posts. #2304
47
+ * Fixed: The Option Facebook App ID not necessary in the social icons of AMP panel when using Swift #2384
48
+ * Fixed: Embeds not working in Archive Description #2402
49
+ * Fixed: Spurious spaces in Footers #2521
50
+ * Fixed: Additional spaces Pagination div on article posts #2522
51
+
52
+ = 0.9.97.15 (13th September 2018) =
53
+ * Fixed: Pagination is not working on date archive #2289
54
+ * Added: Options to show Social Icons in different places in Swift #1722
55
+ * Fixed: Localization string for "% days ago" not working for non-Latin languages #1491
56
+ * Added: Social Share by Supsystic Compatibility #1509
57
+ * Fixed: Duplicate h1 tags in Design One #1522
58
+ * Added: 3 Appearance option for Related Posts in Swift theme #1545
59
+ * Fixed: RTL not working with Footer properly #1655
60
+ * Fixed: Proper implementation of the property of all in one SEO pro to avoid fatal error #2500
61
+ * Fixed: Notice: Undefined index: extension in thirdparty-compatibility.php on line 401 - 406 #2496
62
+ * Fixed: Wrong url in Non-Amp Version link on blog posts page and category archives #2424
63
+ * Fixed: The Consent.php path is getting index in Webmaster tool #2518
64
+ * Added: Option to add custom things in Instant Articles #1089
65
+ * Added: Show/hide Instant Article on specific posts #1297
66
+ * Added: Facebook Instant Articles (FBIA) Crawler Ingestion (ia:markup_url) tag #1474
67
+ * Added: Facebook Instant Articles Meta Tag #1486
68
+ * Added: Related posts for instant articles #1634
69
+ * Added: Option to remove Author info from Instant Articles #1483
70
+ * Added: Facebook Instant Articles in each Catagory #1524
71
+ * Added: Custom Facebook Instant Articles Ad option #1475
72
+ * Fixed: Pagination not working after changing the pagination base #1485
73
+ * Added: Breadcrumb with tag #1305
74
+ * Fixed: Enabled WordPress Comments by default #1501
75
+
76
+ = 0.9.97.14 (4th September 2018) =
77
+ * Added: Adobe Analytics Support #887
78
+ * Fixed: Same Icons loading for some extensions #2172
79
+ * Fixed: Removed extra spacing from "Back to top" text #2349
80
+ * Fixed: Retina featured images support for Homepage and archive loop images #2334
81
+ * Fixed: When WooCommerce Product Slider is Installed, the Picture of Icons are not loading #2325
82
+ * Added: Customizr Theme Lazy Loading compatibility #2322
83
+ * Fixed: "Save Module" button of AMP page Builder not displaying in OSX and in Safari #1943
84
+ * Fixed: Sort Related Posts Randomly Not Working in Swift theme #2308
85
+ * Added: Need to create a tutorial of How to Enter your Audience Network Placement ID of advertisement in the Instant Article #1723
86
+ * Fixed: Retina Images option Improvement-II #2296
87
+ * Fixed: Disable the look or check of redux framework #2293
88
+ * Fixed: With Redux core plugin, AMP option panel design not loading #2258
89
+ * Fixed: Issues with pagination #2253
90
+ * Added: Thrive Architect Compatible #1575
91
+ * Fixed: Notice Undefined variable categories_array #2486
92
+ * Fixed: Need to add upscale parameter in-line related posts #2488
93
+ * Fixed: Getting the warnings in error log due to global variable, not present #2395
94
+ * Fixed: Google Analytic issue while setting up Run Installation wizard #2491
95
+ * Added: Read more button AKA Content Sneak Peek feature for post #2246
96
+ * Added: Showing related items/post in after nth paragraph #2246
97
+
98
+ = 0.9.97.13 (28th August 2018) =
99
+ * Fixed: Fatal error in `ampforwp_related_post_loop_query()`
100
+
101
+ = 0.9.97.12 (27th August 2018) =
102
+ * Fixed: Quote runs only in block post not on pages #2399
103
+ * Added: Create a Sidebar option that can be used as global Sidebar #2388
104
+ * Fixed: words are breaking and not readable #2441
105
+ * Fixed: Text is breaking into next line while there is no space between the text in custom AMP Editor #2270
106
+ * Fixed: IP Anonymization #2421
107
+ * Added: Setka Editor Compatibility #2468
108
+ * Fixed: In swift theme, when user ads the ad Above the Related Posts (Single Post); the content doesn't display #2311 and #2318
109
+ * Added: Toggle controls are now accessible #1691
110
+ * Added: Global Sidebar is now Connected with AMP Pagebuilder #2371
111
+ * Fixed: #amp-user-notification1 Styling was loading even when disabled from option panel in swift #2400
112
+ * Fixed: Remove the empty `@media{}` css generated by Pagebuilder #2473
113
+ * Fixed: Blank Lines in HTML Source code #2445
114
+ * Fixed: Optimize AMP pages on Google Lighthouse #2082
115
+ * Fixed: RSS Feed is not working when AMP Takeover is enabled #2309
116
+
117
+ = 0.9.97.11 (21th August 2018) =
118
+ * Minor Update
119
+
120
+ = 0.9.97.10 (18th August 2018) =
121
+ * Fixed: Homepage build with AMP PageBuilder is displaying only when the checkbox of the Custom AMP editor is enabled #2350
122
+ * Added: Created a new function to get the settings instead of calling it directly from global $redux_builder_amp everytime. `ampforwp_get_setting` created #2177
123
+ * Fixed: Comments and share not loading on pages only in swift #2401
124
+ * Fixed: Back to Top link not working in Swift Design #2404
125
+ * Added: Ads Below the Author Area in Swift theme #2455
126
+ * Fixed: AMP should remove spaces from GTM ID automatically #2413
127
+ * Fixed: Some Posts are not displaying in Blog page even when AMP is enabled from Post settings #2375
128
+ * Fixed: Wrong AMPHTML when using static page as blog using custom-code/pagebuilder from reading settings #2396
129
+ * Added: Add paginations meta tags #2343
130
+ * Fixed: Updated the code of AMP renders with ?q after the /amp #2361
131
+ * Added: Add support for Relevanssi search #2307
132
+ * Added: Show index/noindex label when enabling the options in SEO Settings #2290
133
+ * Added: Add AMP consent in AMP Theme Framework #2440
134
+ * Added: Created a component called `AMP-geo` so anyone can use it in thier AMP theme #2440
135
+
136
+ = 0.9.97.9 (1st August 2018) =
137
+ * Minor Improvements
138
+
139
+ = 0.9.97.8 (24th July 2018) =
140
+ * Fixed: AMP renders with ?q after the /amp #2361
141
+ * Fixed: iThemes Sync can not connect to the site. #2380
142
+ * Fixed: H1 to H6 styling is not reflecting in the Swift theme #2383
143
+ * Fixed: Underline on Links function is not working. #2372
144
+ * Fixed: WordPress Admin Color Scheme not applying #2390
145
+ * Fixed: Breadcrumbs are not disabling when the sidebar template is selected #2376
146
+ * Fixed: All the Images are Adding AMP at the End of their URL. #2391
147
+
148
+ = 0.9.97.7 (18th July 2018) =
149
+ * Fixed: PageBuilder not loading on frontpage #2360
150
+ * Fixed: 500 error on somepages due to open wp_query by other plugins
151
+ * Fixed: License key reupdating #2261
152
+ * Fixed: AMP renders with ?q after the /amp #2361
153
+
154
+ = 0.9.97.6 (14th July 2018) =
155
+ * Fixed: Error and Warning on Structured Data for Logo. #2360
156
+ * Fixed: Category Bulk tool breaking meta boxes #2335
157
+
158
+ = 0.9.97.5 (11th July 2018) =
159
+ * Fixed: Title disappearing in Design 1,2,3 when legacy pagebuilder is enabled #2341
160
+ * Fixed: ld+json getting a broken when special characters are added in the image. #2346
161
+ * Fixed: Hide by Category Breaking post metabox #2330
162
+ * Fixed: Hiding excerpt when global $redux_builder_amp is empty #2330
163
+ * Fixed: When Google Tag Manager is enabled, only Google Analytics should get disabled but not other analytics. #2340
164
+
165
+ = 0.9.97.4 (09th July 2018) =
166
+ * Fixed: Huge Performance upgrade in the way fetching the logo url #2317
167
+ * Fixed: Fatal Error due to unable to modify values in Structured Data Object #2327
168
+ * Fixed: Seperate option for Featured Image in pages in Swift theme #2328
169
+ * Fixed: `<p>` tags disabling where not wanted #2330
170
+ * Fixed: Fatal error in contact form module while ninja form or gravity form plugins are not activated #2310
171
+ * Fixed: Woo Commerce Category page not working properly #2333
172
+ * Fixed: Few issues related to amp-facebook-comments #2300
173
+ * Fixed: Limit number of Tags and Category to 500 in Hide AMP-Bulk tools #2336
174
+
175
+ = 0.9.97 (27th June 2018) =
176
+ * For more details check out [the blog post](https://ampforwp.com/0-9-97-released-strengthening-of-foundation-89th-update/)
177
+ * Fixed: Extraposition attribute left in CSS Design #2 #2119
178
+ * Fixed: Non-AMP header link not working #2109
179
+ * Added: Create an Ad Above the Post Content #2155
180
+ * Fixed: "AGO" text was not translatable #2158
181
+ * Added: Filter created `ampforwp_header_url` to modify logo url #2141
182
+ * Fixed: Removing the text "amp" in footer view non-amp-link #2158
183
+ * Added: Compatibility WP user Avatar plugin added #2011
184
+ * Fixed: Design 2 - meta info producing a block of empty HTML #1969 #1954
185
+ * Added: Pocket and Hatena Bookmark social share buttons Added #1652
186
+ * Fixed: External Links are appended with "amp" at the end of the url in content. #2174
187
+ * Fixed: Some Issues Found in Design #3 #2130
188
+ * Fixed: ScoopVersion: 1.4 By boostdevelopers theme displaying the error only in the category #1683
189
+ * Fixed: Page featured Image is not displaying in the Swift theme #2136
190
+ * Fixed: Dropcap breaking the youtube embed code #2157
191
+ * Fixed: Bulk hide by default option is requires Permalinks to be saved #2145
192
+ * Fixed: Fully compatibility with muffin page builder #2180
193
+ * Fixed: Incontent Related Post Issues #2078
194
+ * Fixed: Search page should not have AMP version of the page and not in search result #2191
195
+ * Added: Control added to modify Retina Images resolutions #2099
196
+ * Added: Created an option to duplicate a page builder element #1986
197
+ * Added: Image Caption is not displaying below the Image in design 1,2,3 #2101
198
+ * Fixed: Post pagination not working properly in D1, D2 and D3 #2168 #2243
199
+ * Fixed: Auto re-save permalink if the options in reading setting page get changed #2190
200
+ * Fixed: Leave a comment not looking good in Swift theme #2150
201
+ * Added: Social icons for pages. #2162
202
+ * Added: Create an option to pull canonical from Yoast #2118
203
+ * Added: Full Support for All in one SEO #1720
204
+ * Fixed: Single with sidebar CSS should only load if that layout type is selected #2091
205
+ * Fixed: Required Filed is not working in the Repeater in Page builder #2217
206
+ * Fixed: alt in `<div>` causing validation errors. #2093
207
+ * Added: Drop Down Menu Support in Swift Header Menu #2095
208
+ * Added: Parallax Setting Added in PageBuilder #2095
209
+ * Added: Multiple Layout Settings added in Feature Module in Page Builder #2095
210
+ * Added: Add the option changing the sliding speed of slider in "Slider module" of AMP Page Builder #2218
211
+ * Added: Created an option Related Post link in non amp #2201
212
+ * Fixed: Removed Jannah LazyLoad on AMP Mode #2224
213
+ * Fixed: Custom post types with custom taxonomy not working in AMP #2209
214
+ * Fixed: frontpage and homepage not working properly AMP take over #2153 #2277
215
+ * Added: Button field created in Feature module #2068
216
+ * Added: Excerpt should also work on homepage and categories page #2176
217
+ * Fixed: Options panel breaks in when RTL in WP Dashboard #2176
218
+ * Fixed: Featured image from Custom fields in page builder Category module #2237
219
+ * Added: Forms Module Support added in PageBuilder #2221
220
+ * Fixed: Paginated AMP URL on the category are opening to 404-page #2233
221
+ * Fixed: Ads not displaying properly in RTL #2227 #2138
222
+ * Fixed: single quotation (') in text module breaking AMP page builder #1940
223
+ * Added: Filter created to modify `ampforwp_loop_image_update` image arguments in components of AMP theme framework #2057
224
+ * Added: Option to change the locale of Facebook comments #2127
225
+ * Added: Search option in options panel #2088
226
+ * Fixed: Accordion not working when the user enters some data in Description with HTML Tags #2088 #2097
227
+ * Fixed: Internal links now working with ?amp=1 #2204
228
+ * Fixed: UTM Parameters not working properly with AMP #2223
229
+ * Fixed: Multiple Slider module of AMP Page builder not working #2090
230
+ * Fixed: Hide AMP by categories option should hide by default in the backend of that specific post #2112
231
+ * Added: IP Anonymization in Google analytics #2135
232
+ * Fixed: Improvement in the styling of AMP option panel #2102
233
+ * Added: Added new fonts control for Content in Single page #2122
234
+ * Fixed: Legacy page builder button styling is not loading properly #2036
235
+ * Added: Filter added so we can disable Comments on specific pages `ampforwp_comments_visibility` #2170
236
+ * Fixed: Improvement in Excerpt on small screen option #2034
237
+ * Added: Comments on Pages #2229
238
+ * Fixed: Pagination not working for some websites #2241
239
+ * Fixed: "Menu" option in Footer connected with Swift #2146
240
+ * Added: Wistia Support #1875
241
+ * Added: Add option in page builder to give the specific name to all modules #2251
242
+ * Added: Compatibility with Muffin Builder #2137
243
+ * Fixed: AMPforWP Option panel styles are overriding other theme's options panel if both use Redux Framework #2121
244
+ * Fixed: AMPforWP Option panel styles are overriding other theme's options panel if both use Redux Framework #2121
245
+ * Added: Render all the AMP Components added in Post Editor #2216 #2228
246
+ * Fixed: "Gap" Module of ThemeCo breaking the AMP pages #2220
247
+ * Added: Search widget compatibility #2143
248
+ * Added: Advertisement Module created in AMP Pagebuilder #2131
249
+ * Fixed: Performance issue with the function `ampforwp_get_comments_gravatar` #2234
250
+ * Fixed: Empty the amp pages, when the Clearfy HTML compress is enabled #2110
251
+ * Fixed: The attribute 'value' appearing in tag 'a' throwing the validation error #2262
252
+ * Fixed: Versioning of Styles and Scripts of redux-core #2126
253
+ * Added: Related Posts based on X days #2132
254
+ * Fixed: Warning in custom-sanitizer.php #2173
255
+ * Added: vuukle comment support #2075
256
+ * Fixed: Facebook Comment should not appear on the Checkout page, Add to cart page, or shop page #2170
257
+ * Added: SpotIM comment support #2075
258
+ * Added: Additional Controls added in Design3 Featured slider #2222
259
+ * Fixed: Username in AMP Option panel color was too light #2266
260
+ * Added: Settings created to modify H1 to H6 #2059
261
+ * Fixed: AMP_QUERY_VAR debug issue #2265
262
+ * Added: Custom page template in AMP #1923
263
+ * Fixed: Comments Button is not displaying in Design #3 #2163
264
+ * Added: Ability to add Forms Shortcodes in footer Widgets #2226
265
+ * Added: Option to add rel="nofollow" in AMP page builder button module #2239
266
+ * Added: Background video option in amp page builder #2195
267
+ * Fixed: Drop Down Menu Support in Swift Header Menu #2095
268
+ * Fixed: Yoast Description not getting added in AMP #2159
269
+ * Fixed: Improvement in styling of AMP option panel #2102
270
+ * Fixed: Hide AMP Bulk Tools Improvements #1867
271
+ * Added: Compatibility with the Relevanssi Plugin #1503
272
+
273
+ = 0.9.96 (2nd June 2018) =
274
+ * Added: Fully GDPR Compliance
275
+ * Fixed: GTM not working
276
+
277
+ = 0.9.86.1 (8th May 2018) =
278
+ * A bug causing validation issues has been resolved.
279
+
280
+ = 0.9.86 (3rd May 2018) =
281
+ * For more detials check out [this blog post](https://ampforwp.com/0-9-86-released-getting-ready-for-future-87th-update/)
282
+ * Added: GDPR Compliancy #2040
283
+ * Added: Muffin Page Builder Compatibility #1455 #1893
284
+ * Added: Thrive leads compatibility #2067
285
+ * Fixed: Load structured markup json in Footer to improve performance #1945
286
+ * Added: Font Size and Font Family Controls added in Content Presentation Module #1962
287
+ * Added: Font Weight Control added in Text Module in PageBuilder #1962
288
+ * Added: Other necessary controls added in Content Presentation Module #1962
289
+ * Added: New Design called "Design 4" added in Content Presentation Module. #1962
290
+ * Fixed: License Activation process connected with AMP extensions #1981
291
+ * Added: Icon Selector control added in Button module in AMP Page Builder #1962
292
+ * Added: Filter called `ampforwp_get_comments_gravatar` to modify Author Avatar Images #1949
293
+ * Fixed: Validation error fixed by removing json+ld values to remove CDATA #1977
294
+ * Added: Icon Adjustment Option is added in the Button Module #1962
295
+ * Fixed: Debug Warnings fixed #1976
296
+ * Fixed: If AMP support on post and page is disabled then mobile redirection was not working #1979
297
+ * Fixed: Responsive element added in Image Module #1962
298
+ * Fixed: Custom Post and Custom Taxonomies Archives not working in AMP #1957
299
+ * Fixed: AMP take over is on and AMP support on the home page is disabled it was redirecting to some other pages #1994
300
+ * Fixed: Design 1 and Design 2 shouldn't show 'social' tab #1996
301
+ * Added: AMP WordPress Theme notice
302
+ * Added: Rewrite Rules Added for WooCommerece #1957
303
+ * Fixed: AMP Takeover blog search results giving blank page #1990
304
+ * Fixed: Swift pagination markup is present even the page has no pagination #2000
305
+ * Fixed: Pagination breaking on second page on Archives when Blog page is not set #1998
306
+ * Fixed: Added proper Google API jump link #1966
307
+ * Fixed: Advance Index and no-index controls did not had description #1978
308
+ * Added: Filter added `amp_blacklisted_tags` in blacklist-sanitizer file
309
+ * Added: Hyperlink for image module added #1989
310
+ * Added: `ampforwp_get_frontpage_id` a common fucntion created to get post id for AMP frontpage #2025
311
+ * Fixed: Comments controls were not working properly #1987
312
+ * Fixed: Fatal Error after updating the plugin from 0.9.73 to 0.9.83 version #2017
313
+ * Fixed: Filter created `ampforwp_modify_rel_url` to modify rel canonical URL #2012
314
+ * Fixed: Remove structured data json if removed from AMP options panel
315
+ * Fixed: amp widget appearing twice in design one #2008
316
+ * Fixed: Gif in content + Lightbox feature throws validation issue. #2032
317
+ * Added: New Features in the Page builder Modules #2029
318
+ * Fixed: License Key was not working properly #2026
319
+ * Fixed: Instagram comment view is getting cut off in Swift Theme #2002
320
+ * Added: Icon module support added in Desgin 1, 2 & 3 #1997
321
+ * Fixed: if GD or ImageMagick library is not present in the server then send the original image #2037 #2038
322
+ * Fixed: Swift theme homepage (Non-AMP) image resizing issues in Mobile version #1992
323
+ * Fixed: Header Element not working in Swift theme #1967
324
+ * Fixed: Stop Loading of Latest post scripts on Homepage and Frontpage #2041
325
+ * Added: Filter created `ampforwp_non_amp_links()` so users can have all the internal links non-amp #1973
326
+ * Fixed: Sanitize the archive description in loop component #1974
327
+ * Fixed: Double AMPHTML when FBIA Plugin is active #2043
328
+ * Fixed: Image Div is loading even if the image is not present in Swift #2033
329
+ * Fixed: Custom AMP editor is visible on pages (post type) even if the Page Support is off from amp options panel #2047
330
+ * Fixed: When 'Structure Data for WP' plugin active, Schema type in Structure section should hide #2049
331
+ * Fixed: Bugs in Video Module in AMP pagebuilder #2048
332
+ * Added: Autoplay feature added in Video Module #2048
333
+ * Fixed: Throwing error when Product Structured Data is selected #1975
334
+ * Fixed: Advanced CSS is not loading because the files are with hosting path #2046
335
+ * Fixed: Double Quotes breaking the html #2004
336
+ * Removed: Blog option is removed from AMP Options panel and it is connected with Pages option Under Reading Settings #2027
337
+ * Fixed: amphtml should not be created for 404 pages #2018
338
+ * Added: 404 Template added, useful for AMP Takeover #2042
339
+ * Fixed: Genesis meta titles are lost and not rendering correctly #2050
340
+ * Fixed: Search blank on AMP Takeover #1990
341
+ * Fixed: Remove Unused js files from Paginated Post Pages #2001
342
+ * Fixed: Extra Space adding in H1 and other SEO tags #2054
343
+ * Fixed: Undefined Index when called from robot #1960
344
+ * Fixed: amp facebook comment Js not loading to the custom front page of the swift theme. #2053
345
+ * Fixed: Tags label is not working properly when RTL Support on #1719
346
+ * Fixed: View Non-AMP Version In the footer link has an error #2066
347
+ * Fixed: Squirrly SEO is Adding the Javascript code in AMP #1696
348
+ * Fixed: Translation option issue when using POT file method #1941
349
+ * Fixed: amp-facebook-like extension is missing on Custom Frontpage #2061
350
+ * Fixed: GTM option repositioned #2056
351
+ * Fixed: Menu is appearing on left side instead of Right side when RTL support is ON for Design3 #1928
352
+ * Fixed: Sidebar Bugs #1972
353
+ * Added: Table Styling in Swift #1961
354
+ * Fixed: Genesis index, follow options not being rendered #2071
355
+ * Added: Filter created `ampforwp_robots_meta` to modify robots meta information #2071
356
+ * Fixed: PHP Notices #2065
357
+ * Added: Add a new hook `ampforwp_after_amp_menu` after the menu in all designs #2072
358
+ * Added: New Look to Options panel #1823
359
+ * Added: Retina Image Support added #1846
360
+ * Fixed: Pagebuilder hrefs were stripped in hebrew language #2089
361
+ * Fixed: Warning Fixed #2083
362
+ * Fixed: Gallery module images not loading in Firefox #1980
363
+ * Fixed: Pagebuilder Improvement #2024
364
+
365
+ = 0.9.85.5 (21st April 2018) =
366
+ * Added: Filter added to modify frontpage post id `ampforwp_modify_frontpage_id`
367
+ * Added: Filter added to modify amp template directory `ampforwp_template_locate` #1982
368
+ * Other minor bugs fixed
369
+
370
+ = 0.9.85.3 (12th April 2018) =
371
+ * Added: Custom Post type Archive Page support #1995
372
+ * Fixed: AMP TakeOver redirection issues #1994
373
+ * Fixed: Debug errors #1976
374
+ * Fixed: Social Profile pages were hidden for Design 1 to 3 #1996
375
+ * Fixed: Structured Data insertion was adding CData causing validation error #1999
376
+
377
+ = 0.9.85.2 =
378
+ * Minor Bugs fixed
379
+
380
+ = 0.9.85.1 =
381
+ * Minor Bugs fixed
382
+
383
+ = 0.9.85 (3rd April 2018) =
384
+ * For more detials check out [this blog post](https://ampforwp.com/0-9-85-released-stability-update-86th-update/)
385
+ * Fixed: Fatal error: Allowed memory size on FrontPage #1865
386
+ * Fixed: Proper Parameters for Pinterest Sharing #1853
387
+ * Added: Extra settings added in Button Module
388
+ * Added: Extra settings added in Text Module
389
+ * Fixed: Proper Parameters for Pinterest Sharing
390
+ * Fixed: Unwanted fields are removed form the Repeater in Button module
391
+ * Added: Enable/disable option added Related Posts #1829
392
+ * Fixed: Legacy PageBuilder option Repositioned #1851
393
+ * Fixed: Display the img tag only if source is present #1869
394
+ * Fixed: Huge design improvements in Swift theme #1818
395
+ * Added: Hook for Between Related Post is Added #1874
396
+ * Added: Blurb module text size and background color added
397
+ * Fixed: Comments Pagination issues #1816
398
+ * Added: Counter Module added
399
+ * Fixed: Date 48 years ago #1864 #1876
400
+ * Added: Ability to pass post id in amp_content() #1872
401
+ * Fixed: Changed the way images we fetched in WooWidget #1847
402
+ * Fixed: Changed the position of layout in Pagebuilder #1873
403
+ * Added: Pricing Module
404
+ * Fixed: Changed the position of layout in Pagebuilder #1873
405
+ * Fixed: amp_aq_resizer was not able to process the outside url #1881
406
+ * Fixed: Advanced Google Analytics improvements #1630 #1860
407
+ * Added: Field Added For ON & OFF in Page builder #1870
408
+ * Fixed: Two paginations in search pages in Swift theme #1855
409
+ * Fixed: Extra Div if categories not available #1856
410
+ * Fixed: removed debuged tags #1870
411
+ * Fixed: Published date connected with AMP options Panel #1888
412
+ * Added: Featured Image option in Swift #1889
413
+ * Added: Separate Blog settings #1887
414
+ * Fixed: single post ads should not load on pages #1896
415
+ * Fixed: Ads should not load on FrontPage if PageBuilder is enabled #1885
416
+ * Fixed: Background Image Support for the Columns #1871
417
+ * Added: Blockquotes design for Swift #1894
418
+ * Added: Co-Authors Plus compatibility #1895
419
+ * Added: pagebuilder for custom post types #1884
420
+ * Added: Border option is connected to options panel #1818
421
+ * Added: Responsive AD unit support #1852
422
+ * Added: Sub category arrow symbol is added in Swift theme #1818
423
+ * Added: Search text color is connected to options panel #1818
424
+ * Fixed: Removed notice when no posttype selected #1884
425
+ * Added: Ability to overwrite page template the WordPress way like front-page.php and page-{id}.php #1902
426
+ * Added: Ability to overwrite author page template the WordPress way like author.php and author author-name.php #1902
427
+ * Added: Lightbox Support for the images #1892
428
+ * Fixed: No mobile redirection when Dev mode is enabled #1907
429
+ * Added: Option to hide Author name in Swift #1890
430
+ * Fixed: Script facebook-comments should not load for Frontpage #1897
431
+ * Added: amp-facebook comments for AMP2WP #1911
432
+ * Added: Alt tag in all modules #1898
433
+ * Added: Sanitizers in Footer and sidebar widget in Swift #1835
434
+ * Added: Dropcap support #1900
435
+ * Added: Proper styling for iframes and videos in Swift theme #1909
436
+ * Fixed: Non-AMP link fixed for AMP Takeover #1916
437
+ * Fixed: Swift connected with Breadcrumb option #1915
438
+ * Added: Uninstall option created to completely remove AMPforWP data #1903
439
+ * Fixed: Recipe Structured Data requires name attribute #1917
440
+ * Fixed: No amphtml when It is hidden from Categories #1919
441
+ * Fixed: Content is breaking when Inline Related Post option is enabled #1912
442
+ * Fixed: Proper redirection setup for AMP Takeover #1913
443
+ * Added: Social media profiles added in menu #1901
444
+ * Fixed: No Ads should display on Frontpage or Posts if Pagebuilder is enabled #1885
445
+ * Added: #1899 Proper conditions for amp-analytics script
446
+ * Fixed: Turn off option not working by default fixed #1537
447
+ * Fixed: BreadCrumbs Should not load when PageBuilder is enabled #1925
448
+ * Fixed: Removed unwanted elements loading while pagebuilder is enabled #1929
449
+ * Fixed: amp-web-push should not load on Homepage and Blog #1930
450
+ * Added: SmartMag theme Compatibility #1905
451
+ * Fixed: Template overriding not working in child theme #1920
452
+ * Fixed: Horizontal scrolling in Swift #1844
453
+ * Fixed: Home page title should not be visible in AMP takeover #1921
454
+ * Added: Carousel Module Added #1937
455
+ * Fixed: Comments pagination not working #1816
456
+ * Fixed: Comments pagination not working #1816
457
+ * Added: Glue html css compatibility #1932
458
+ * Added: Data Caption Support on AMP Instagram Embed #1938
459
+ * Added: Ability to pass {author_name} and {author_id} added in Advance Analytics #1936
460
+ * Fixed: Scrollbar in Header area in Swift in firefox #1818
461
+ * Added: Disqus iframe height adjustment option #1935
462
+ * Fixed: Options panel conflict fixed with Mobius theme #1942
463
+ * Fixed: Problem with Button in Mobile view in Swift #1926
464
+ * Fixed: Removed canvas tag in AMP version causing validation errors #1880
465
+ * Fixed: Getting Conflict with Facebook Button by BestWebSoft #1740
466
+ * Added: Option to enter the "ID" on CTA button module #1931
467
+ * Added: Option for open same window in CTA module of page builder #1866
468
+ * Fixed: Logo fetch causing Huge performance issue #1679
469
+ * Fixed: Blurb module's default values were not set #1952
470
+ * Fixed: Allow script with application/ld+json #1958
471
+
472
+ = 0.9.84 (14th March 2018) =
473
+ * Added: Polylang Frontpage compatibility added #1779
474
+ * Fixed: Proper link for Linkedin added #1820
475
+ * Fixed: Incorrect function name was Added #1827
476
+ * Fixed: Thumbnail resizing issue in Swift #1828
477
+ * Fixed: Thumbnail issue in Loops of Design 3 #1714
478
+ * Fixed: Hide post builder for Swift #1824
479
+ * Fixed: To avoid warnings when there are no pages in WordPress #1810
480
+ * Fixed: Condition for the Thumbnail for Swift #1733
481
+ * Fixed: Proper Styling for footer for Swift #1733
482
+ * Fixed: Line height issue and CSS editor not working in Swift #1821
483
+ * Fixed: Renamed aq_resize to ampfrowp_aq_resize to avoid conflicts #1838
484
+ * Fixed: Add the prefix to avoid conflicts #1817
485
+ * Fixed: Added Custom format option in amp_date #1845
486
+ * Fixed: Removed amp-img tag where blank SRC in Page builder #1843
487
+ * Fixed: Pagebuilder modal max-height removed so it will become full width #1843
488
+ * Added: An option for select target type in Button Module #1822
489
+ * Fixed: Remove AMP category widget if swift is enabled #1790
490
+ * Fixed: Filter added change mode type #1833
491
+ * Added: Rewrite rule for .html blog page #1775
492
+ * Fixed: Filter added change mode type #1833
493
+ * Fixed: Swift Footer Widget Sanitizer Added #1800
494
+ * Fixed: No OneSignal widget when PageBuilder is enabled #1840
495
+ * Fixed: span tag added around the pagination text #1834
496
+ * Added: Page specific option to add script/html and styles in page builder #1831
497
+ * Fixed: noindex,nofollow in AMP when Dev mode is enabled #1839
498
+ * Added: Jarida theme compatibility added #1842
499
+ * Fixed: noindex,nofollow in AMP when Dev mode is enabled #1839
500
+ * Fixed: Replace value attribute only from html tags. Otherwise it is removing value from * shortcodes which is breaking the whole page. #1738
501
+ * Added: Underline option for content links added #1808
502
+ * Added: Page specific option to add RTL in page builder #1858
503
+ * Added: Converts AMP ads to normal so ads show when takeover is enabled in Normal Mode #1724
504
+ * Added: Converts AMP Analytics to normal so Analytics works when takeover is enabled in Normal Mode #1724
505
+ * Fixed: Phone icon proper alignment in Design3 #1730
506
+ * Added: ADS for WP activation box in Extensions tab
507
+ * Added: New design field added #1861
508
+
509
+ = 0.9.83.1 (8th March 2018) =
510
+ * Fixed: Pagebuilder contents not shows on custom home page #1794
511
+ * Added: Header hook added `ampforwp_advance_header_layout_options`
512
+ * Fixed: Load admin files only in admin pages #1799
513
+ * Fixed: Conflict with WP bakery pagebuilder #1783
514
+ * Fixed: Slide in Menu break in RTL mode #1825
515
+ * Fixed: Validation issue in loops due to empty attributes #1795
516
+ * Fixed: Featrued Image connected Properly with Swift theme #1733
517
+ * Fixed: Changed the disqus.php to disqus.html to pass authentication #1788
518
+ * Added: CSS styling for Loop on shop page #1803
519
+ * Fixed: Facebook comments not work in swift #1789
520
+ * Fixed: Style AMP Category module in Footer swift #1790
521
+ * Fixed: Load aq_resizer only in AMP #1805
522
+ * Fixed: Proper markup for Pinterest in Design3 and Swift #1793
523
+ * Fixed: Proper url for vk
524
+
525
+ = 0.9.83 (03rd March 2018) =
526
+ * Added: Ability to add amp-carousel and amp-selector directly into WYSIWYG Editor #1588
527
+ * Fixed: Debug error caused by Playbuzz Sanitizer #1674
528
+ * Added: Show default gravatar for comments #1758
529
+ * Fixed: Implement Swift Thumbnail Regeneration in all the designs #1709
530
+ * Fixed: To avoid debug error in swift
531
+ * Fixed: Translation improved for some strings #1678
532
+ * Fixed: Stop AMP takeover for Feed pages #1767
533
+ * Fixed: Menu issues In Design 1 & Design 2 after changing from AMP-Sidebar #1565
534
+ * Fixed: AMP Options panel Not Working After Update (0.9.82.1) version #1761
535
+ * Fixed: Move the label to the top [UX improvement] #1746
536
+ * Fixed: Error with Vue #1745
537
+ * Added: Video Module added in AMP Page Builder #1750
538
+ * Fixed: Sidebar menu is not scrollable swift theme #1769
539
+ * Fixed: View Non-AMP should be usertrailingslashit #1772
540
+ * Fixed: Proper structured data for Blogpage #1660
541
+ * Fixed: Legacy Page Builder not working after the update #1773
542
+ * Fixed: Content blank when only image in content #1778
543
+ * Fixed: Comment ID display issue fixed #1758
544
+ * Fixed: PHP Warning: A non-numeric value encountered in components/logo/logo.php on line 52 #1764
545
+ * Fixed: Yummly support added in Swift #1708
546
+ * Fixed: Demo Link updated #1781
547
+ * Fixed: CSS is not loading in Swift Theme #1780
548
+ * Added: Ability to add Advertisement or Sponsored label under ads #1710
549
+ * Fixed: Featured images distortion in related posts #1684
550
+ * Fixed: Implement Swift Thumbnail Regeneration in all the designs #1709
551
+ * Fixed: noarchive instead of nofollow in Archive pages #1693
552
+ * Fixed: Internal links of tags are showing “/amp” after changing the end point to “?amp” in design 2 #1752
553
+ * Fixed: line height is added for the logo in Swift design
554
+ * Added: Class for Custom Frontpage #1787
555
+ * Fixed: Recent post enable disable for Swift theme #1784
556
+ * Fixed: Connect Show/Hide AMP option with AMP takeover#1786
557
+ * Fixed: Added sanitizer to footer Widget #1756
558
+
559
+ = 0.9.82.1 (18th February 2018) =
560
+ * Selector code reverted due to it's effect on carousel
561
+
562
+ = 0.9.82 (18th February 2018) =
563
+ * View more details on https://ampforwp.com/0-9-82-released-stability-update-82nd-update/
564
+ * Logo Resizing calculation by Pixels and resizing bug solved.
565
+ * Update Notification in the Admin panel will only appear in the AMP options panel. So it will not annoy you anymore.
566
+ * Glue underline is applying for some reason
567
+ * Fatal error after 0.9.81 fixed
568
+ * Facebook comments loading twice on swift
569
+ * PHP Notice: Undefined variable: post_author_name
570
+ * Pagebuilder fix in version 0.9.81 Compatibility with Yoast and other plugins #1749
571
+ * Home loop modifier option added. Allows you to exclude the categories from the loop or include the Custom Post type in the homepage loop.
572
+ * amphtml Conflict with Instant Article for Facebook resolved
573
+ * /amp folder in the theme is applying changes in plugin, which causing a bug, but it’s been fixed
574
+ * Backward Compatibility for AMP Preview
575
+ * SEO Section Improvements
576
+ * Wrong comments count on AMP pages
577
+ * AMP Allow selector in the The Content. You can add tabs and AMP components directly into the loop.
578
+ * If we turn off the Homepage Support then Blog is turned off as well, solved.
579
+ * Post Pagination have two options like “Number of pages” and Previous & Next.
580
+ * Removed the dot from the one Signal Service worker URL if the subdomain isn’t added (Causes Validation issues.)
581
+ * Extra Space due to empty divs in Design 3
582
+ * Remove alt from a tag in the AMP version caused many validation issues.
583
+
584
+
585
+ = 0.9.81 (15th February 2018) =
586
+ * Edge case fatal error on features.php fixed
587
+ * Admin dashboard messup CSS fix #1731
588
+ * Custom CSS Output added in Swift
589
+
590
+ = 0.9.80 (15th February 2018) =
591
+ * View More details on the [blog post](https://ampforwp.com/introducing-swift/)
592
+ * AMP Page Builder 3.0: The AMP Page Builder is a lightweight and much stable than ever and works flawlessly! [Read More](https://ampforwp.com/tutorials/article/amp-page-builder-installation/)
593
+ * Swift: The New Default Theme, which you can select from the design section of the Page builder.
594
+ * A way to create a Child Theme for AMP [read more](https://ampforwp.com/tutorials/article/child-theme-amp/)
595
+ * Make AMP & Non-AMP Same: We have an amazing new option called AMP to WP which will generate the WordPress version of the AMP design which will be viewed on the canonical version of the website.
596
+ * AMP Takeover: You can deliver a fully AMP compatible website with this option. It will basically take over the non-amp version and deliver an AMP version to your desktop and mobile users, on WordPress & AMP version. That’s why it was called AMP Takeover
597
+ * Logo Resizing made easy
598
+ * Typography Options
599
+ * 3 Headers design in swift theme
600
+ * Error while sharing the image on Pinterest #1699
601
+ * Homepage support was not working ( when page support is off ) #1695
602
+ * Custom Permalinks rewrite issue solved #1689
603
+ * Custom post type was appearing two types #1688
604
+ * Theia Post Slider plugin incompatibility with post pagination fixed #1677
605
+ * Link to the categories in loop of Design 3 #1632
606
+ * amphtml was not working when plain permalink selected along with static page as homepage #1614
607
+ * AFS Analytics Integration added #1605
608
+ * Removed the blank spaces from analytics id field to deliver a good UX. #1599
609
+ * ?amp endpoint feature added #1561
610
+ * Ability to remove the excerpt and image from related post #1510
611
+ * Thumbnails on-the-fly generation added for better control over the design.
612
+
613
+
614
+ = 0.9.74 (23rd January 2018) =
615
+ * View More details on the [blog post](https://ampforwp.com/0-9-74-released-stability-update-79th-update/)
616
+ * Fixed: Push Notifications button alligned in center #1500
617
+ * Added: Meta robots tag support from Yoast #1563
618
+ * Added: Option to Disable wptexturize/smart-quotes Support #1458
619
+ * Fixed: Changed the label id to avoid conflict with Advanced AMP Ads #1591
620
+ * Fixed: esc_attr causing validation issues with single and double quotes #1616
621
+ * Fixed: Image stretching problem resolved when "Featured Image from the content" was set #1580 #1582
622
+ * Added: Create Template by Custom taxonomy name like product-jeans.php in AMP Theme FrameWork #1594
623
+ * Added: Custom Post type support added in the Core #1612
624
+ * Fixed: custom-amp-content.php cleaned with PHPCS #1497
625
+ * Added: Basic Product(WooCommerce) support added #992 #1276 for full WooCommerce Support please check this [Extension](https://ampforwp.com/woocommerce/#utm_source=readme-log&utm_medium=0.9.74-readme&utm_campaign=AMP%20Plugin)
626
+ * Added: Proper fallback support added if the current active AMP theme is not available #1624
627
+ * Fixed: Resolved debug errors #1622
628
+ * Added: All in One SEO compatibility #1557
629
+ * Fixed: Load AMP Styling only on AMP pages #1441
630
+ * Added: 7 New Social Media Integrations added (Reddit, Tumblr, Telegram, Digg, StumbleUpon, Wechat, Viber) #1265
631
+ * Fixed: itemprop="url" was adding in non-amp #1626
632
+ * Fixed: SiteOrigin Pagebuilder compatibility with Custom Frontpage #1592 #1593
633
+ * Added: MediaAce lazy load compatibility of Bibmer Theme #1472
634
+ * Fixed: Content Links plugin was causing validation errors #1569
635
+ * Added: Filter added called get_content_from_dom to modify the output in AMP function #1462
636
+ * Added: amp_breadcrumb component added in AMP Theme Framework #1636
637
+ * Fixed: Sidebar Styling and proper sanitizer updated
638
+ * Added: amp_author_meta component added in AMP Theme Framework #1641
639
+ * Fixed: amp_post_pagination component improvement in AMP Theme Framework
640
+ * Added: Ability to add link classes in amp_post_pagination in AMP Theme Framework
641
+ * Fixed: amp_author_meta image code improvement in AMP Theme Framework
642
+
643
+ = 0.9.73 (15th January 2018) =
644
+ * View More details on the [blog post](https://ampforwp.com/0-9-73-released-stability-update-78th-update/)
645
+ * Added: Instagram Sanitizer added to process Instagram Embeds inside the BlockQuotes #1581
646
+ * Added: Option Created to Enable/Disable rel="nofollow" for View Non-AMP link #1572
647
+ * Fixed: Custom AMP Content was not working with Elementor Pagbuilder #1495
648
+ * Fixed: ampforwp_is_front_page() is not working in the newspaper theme #1583
649
+ * Added: Allow people to use multiple Analytics on AMP #1124
650
+ * Fixed: 'https' error with PlayBuzz Embeds #1481
651
+ * Added: Option to show last modified date instead of Published date #1496
652
+ * Fixed: Add proper permission for ampforwptourinstaller page
653
+ * Fixed: Debug warnings #1586 and #1459
654
+ * Fixed: A lot of Security Fixes has been done #1497
655
+ * Fixed: Removed lot of unused code #1497
656
+ * Added: AMP skip for checkout page #1443
657
+ * Added: Show the list of Child pages at the end in Parent Page with on/off #1551
658
+ * Fixed: Properly strip shortcodes fom Structured data description #1512
659
+
660
+ = 0.9.72 (6th January 2018, Happy New Year) =
661
+ * View More details on https://ampforwp.com/0-9-72-released-stability-update-77th-update
662
+ * Related Posts Image stretching in Design 3 AMP theme Framework #1482
663
+ * RTL option must be integrated into AMP theme Framework #1562
664
+ * `DOMDocument::loadHTML():` Attribute itemprop redefined warning fixed #1539
665
+ * Created an option to add Author bio article in Facebook Instant Article #1521
666
+ * Options to add push notification button above and below the content #1571
667
+ * Copy the Content button for Custom Post types #1532
668
+ * Alexa Metrics Compatibility added #1536
669
+ * Logo styling added with amp_logo. So styling can work with AMP Theme Framework. #1520
670
+ * Content parsing login improved, so it will not through any warnings if the content has only 1 paragraph. #1523
671
+ * Debug Warnings removed #1564
672
+ * Caption in the Gallery creating validation errors Fixed. #1549
673
+ * Tables Link color should be as same as the link of the body #1559
674
+ * Separate options for In-Content related posts #1546
675
+ * WebPage Schema Type added in Structured Data options #1558
676
+ * Fatal Error fixed with `mb_detect_encoding()` after enabling the minify option #1494
677
+ * Content blank or fatal errors due to itemscope and itemtype, fixed. #1570
678
+ * Performance improved. Due to `_transient__redux_activation_redirect` transient. #1526
679
+
680
+ = 0.9.71 (1st December 2017) =
681
+ * Design 2 Post Titles issue fixed
682
+ * Instant Articles validation issue fixed.
683
+
684
+ = 0.9.70 (30th November 2017) =
685
+ * View More details on https://ampforwp.com/0-9-70-released-stability-update-76th-update/
686
+ * Image alt tags are empty which caused issues. #1154 (thanks to @liagua)
687
+ * ALT and IMG tags are in one line #1442
688
+ * Updated the permalink for post view in admin area #1318
689
+ * aria-current causing validation issues #1427
690
+ * Aligning Captions in the Bottom in Gallery #1428
691
+ * Logo’s height & width should dynamically come from the logo. This was a great UX improvement in my opinion. The logo would good regardless of the kind of image you upload. #1429
692
+ * After 0.9.69.1 update – Call to undefined function mb_convert_encoding #1447
693
+ * Featured image options now also reflect the structured data #1430
694
+ * Blur & Stretching issues of Design 3 thumbnails are now fixed. They’re crisp and clear than ever! #1227
695
+ * Related posts are showing on single even when turned off #1434
696
+ * Show Related posts CSS only when it is selected #1356
697
+ * Author image now displays on author pages #1426
698
+ * Category base removal in AMP from url option is only working on the first page #1418
699
+ * Bug fixed: PHP Warning DOMDocument Empty string supplied as input #1449
700
+ * Video support added in Instant Articles #1300
701
+ * Read more tag in Instant articles issue fixed #1415
702
+ * Amp carousel issues fixed #1446 #1456
703
+ * Compatibilty with Envira Gallery Lazy Loading #1432
704
+ * Inline Related Posts in AMP Theme Framework #1457
705
+ * Different number of in-content related post and related posts at the footer #1448
706
+ * FooGallery update broke all the AMP compatibility, but we fixed it from our side so that user’s gallery work perfectly #1424
707
+ * WPBakery Page Builder Conflict solved #1419
708
+ * Goodlife theme Lazy Load compatibility added #1416
709
+ * AMP-Facebook-Like Was found but unused Validation Error fixed. #1463
710
+ * Playbuzz not displaying if added with https: #1466
711
+ * Options Panel labels renamed for better understanding.
712
+
713
+
714
+ = 0.9.69 (20th November 2017) =
715
+ * View More details on https://ampforwp.com/0-9-69-released-stability-update-75th-update/
716
+ * One Signal Push Notifications bug fixed! #1404
717
+ * AMP theme framework Related posts extended so that it can be used as a loop format #1406
718
+ * Facebook like Button improvements #1405
719
+ * Add layout responsive tag to image module in page builder #1373
720
+ * Strip the shortcodes from Structure data area #1389
721
+ * Test HTTP API Call From admin panel by redux #1391
722
+ * Meta description tag in normal site Unicode character is different from AMP site unicode character. #1369
723
+ * Updated the check for ampforwp_is_amp_endpoint this should fix the issue #1372
724
+ * Updated the URL for design 3 so it can work with plain permalink #1318
725
+ * Updated the option Featured Image from The Content #1367
726
+ * If “Featured Image From The Content is enabled and Duplicate Featured Image” is disable it will remove all the duplicate images from the content. #1375
727
+ * Date Format under Homepage improvements #1408
728
+ * Warnings due to inline related posts in Homepage #1413
729
+ * Plain Permalinks Support improved. #1318
730
+ * Allow Homepage title of Bread Crumbs feature to be changed from Translation Panel #1414
731
+ * Debug Errors in AMP Theme Framework #1403
732
+ * Unnecessary loading of Merriweather fixed, it will only load in the Design 1.
733
+ * Enter Phone Number is not Appearing when switch to Call now button #1425
734
+ * Need excerpt below the title, above the meta #1399
735
+ * Remove the Separator piple symbol from the footer when “Back to Top link” is off #1417
736
+ * Display Child or subcategories on Category pages. #1385
737
+ * Add Caption in the Gallery Image feature conflicting with Gallery widget #1407
738
+ * Youtube Shortcode embed with &rel=0 support #1378
739
+ * Filter for Excerpt custom text in the AMP options #1411
740
+ * WPML Multilingual CMS plugin flags compatibility #1270
741
+ * Compatibility with Tasty Recipes plugin and other page builders with amp page builder #1431
742
+
743
+
744
+ = 0.9.68 (12th November 2017) =
745
+ * View More details on https://ampforwp.com/0-9-68-released-stability-update-74th-update/
746
+ * ADs are Optimize For Viewability, meaning it will try to load faster than the original AMP AD loading strategy.
747
+ * Content was disappearing issue was resolved #1392
748
+ * Featured Image from The Content option is connected to related post #1339
749
+ * Fix amp-web-push helper iframe configuration URL #1387
750
+ * Facebook Like button added to AMP #1327
751
+ * WPML support for AMP Improvement #1285
752
+ * Debug Errors fixed #1366
753
+ * Setting ad density for Facebook Instant Articles ads #1287
754
+ * Showing the number of comments in Single #1341
755
+ * Styling added to the sitewide ads and made sure that they are in the center. #1343
756
+ * One Signal buttons Translation added #1383
757
+ * Article type added to Structured data #1344 #1354
758
+ * The issue with the amp-carousel when RTL was enabled #1358
759
+ * amp-carousel with images of different sizes #1358
760
+ * a bug where Img is getting converted to amp-img if there's no height or width. which causing validation issue and image is not visible fixed.
761
+ * Instant Article should have a default value for number of posts, it was causing the memory issue with alot of posts #1390
762
+ * Notice if a post has no author data #1338
763
+ * Added a new redux extension select field in redux framework #1349
764
+ * Issues with galleries as well as gallery captions #1363
765
+ * Added a hook for adding anything in between the loops #1396
766
+ * Hide meta boxes as per the user level types #1340
767
+ * A Switch between the Date formats #1384
768
+ * Fix: Jannah theme lazy load issue #1362
769
+ * Issues with galleries as well as gallery captions #1363
770
+ * Create Dynamic url of amp according to the permalink structure #1318
771
+ * Minor code performance improvement.
772
+ * Archive titles in Design 3 frontend issue
773
+
774
+ = 0.9.67.0 (6th November 2017) =
775
+ * View more details on https://ampforwp.com/one-signal-push-notifications-for-amp/
776
+ * OneSignal Push Notifications integrated #807
777
+ * Vimeo embed support added
778
+ * SoundCloud embed support added
779
+ * Pinterest embed support added
780
+ * PlayBuzz embed support added
781
+ * DailyMotion embed support added
782
+ * Fix: Handle issues with data uri images in CSS #1033
783
+ * Fix attribute when adding AMP Mustache lib #1033
784
+ * Fix: Output CSS for feature image #1033
785
+ * An option added for users who don't want to receive update notifications #1342
786
+ * Structured data nav improvement
787
+ * Sitenavigationelement has been implemented correctly for footer menu. #1345
788
+ * Style sanitization for Menu Items #1359
789
+ * Polylang flags support for menu  #1360
790
+ * Mobile Redirection issues fixed #1173
791
+ * Jetpack fatal error fixed #1355
792
+ * AMP Page Builder requires a button to be clicked, so the scripts are not running on the runtime making it easy on the edit screen page and avoid the possible script conflict.
793
+ * Needs proper CTA Bar's styling. #1361
794
+ * Debug errors on archive pages #1353
795
+ * Preview shall only be loaded on click rather than in background #1331
796
+ * ampforwp_is_home() function code improved
797
+ * making sure scripts and styling is properly adding when sanitizing the sidebar #868
798
+ * All the backend css and js should be versioned, so it's not cached. #1335
799
+
800
+ = 0.9.66.1 (30th October 2017) =
801
+ * Fatal error if has version less than WP 4.8 fixed
802
+ * More Minor Validation errors fixed
803
+ * Odnoklassniki sharing button is not working #1337
804
+
805
+ = 0.9.66.0 (29th October 2017) =
806
+ * View more details on https://ampforwp.com/0-9-66-released-bug-squashing-oct-2017-72nd-update/
807
+ * Design 3 & Design 1 are optimised with 90+ Google PageSpeed Score on Mobile and 95+ in desktop performance #1273
808
+ * Featured Image from the content for blog and homepage #1295
809
+ * Category Module for AMP Page builder added #888
810
+ * Don't load unused CSS selectors. All the CSS is conditionally loading, to decrease the number of CSS loaded per page and increased in performance #1292
811
+ * Twitter Video embed code support added in AMP #1307
812
+ * Video Posting Structured data #1293
813
+ * Navigation menus are now Schema compatible for better Structured data integration #1229
814
+ * Yoast checking conditions for Structured Data Improved #1293
815
+ * Added "back to Top" in design 3 #959
816
+ * Proper blog check and author for custom frontpage #1260 (Made some changes to check the blog properly and also added the author details for Custom Frontpage)
817
+ * AMP not working on password-protected pages #1192
818
+ * Debug errors reported by the user #1284 and few more we found internally
819
+ * Inline Style Sanitizer for Comments to avoid any validation issues #1193
820
+ * Next/Previous links removed from pages #1268 props @Frenchomatic
821
+ * WPML Multilingual CMS plugin flags compatibility added #1270
822
+ * Image sanitizer added for the Sidebar #1270
823
+ * Added AMP Components the correct way. Added amp-gist, amp-social-share. #336
824
+ * amp-video script added - Which decreases the non-critical validation issues #991
825
+ * Arrows in Design 3 pagination #1000
826
+ * Author page links in Single #1282
827
+ * Added previous open state of option panel and show again when search clean #1238
828
+ * Odnoklassniki Social Sharing Support for AMP (with target blank for better bounce rate) #1230
829
+ * GIF or animated images resize problem fixed #1281
830
+ * In Design1, Header Background & Link Color have same option #1249
831
+ * FB Pixel for AMP added #1231
832
+ * Structured Data Type option for AMPed Custom Post types only #1259
833
+ * Attribute ‘readability in the tag ‘div’ removed - this decreases the validation issues #1306
834
+ * AMP Theme Framework Improvements: loop, author, related_post, Add Author support #1311
835
+ * Commentator's Avatar in the comments section #1132
836
+ * Remove 'Welcome to AMP' from Dashboard sub-menu and moved to the options area to decrease the annoyance and increase the user happiness #902
837
+ * Option to Sort the Random Order of Related Posts to increase the audience engagement (Default is 'ID', on enabling the option it will change to 'rand') #1250
838
+ *  View AMP on Admin Bar for the respected page/post If enable. #1236
839
+ * google maps iframe – link to larger map #1099
840
+ * Comments now jumping due to the slash at the end #1309
841
+ * Page Builder causes Incompatibility with the Divi theme (We restructured the Text Module for Page builder for better compatibility and UX) #1162
842
+ * Inline Style Sanitizer for Comments added. Less Critical Validation issues and Better Presentation #1193
843
+ * WPML amp-html error fixed #1285
844
+ * Radio button not working for Show View more Button" #1018
845
+ * Added registered handle for tinymcePointer localize data #1301
846
+ * Date in the Design 2 should not be hidden in mobile version #1315
847
+ * Page builder not working on homepage(Selected as front page) #1316
848
+ * Instant articles number of posts option #1271 (Removed some unused code as well, it will rendered all posts if none is enter in the options)
849
+ * Auto flush on save for FBIA to improve the UX.
850
+ * Plain Permalinks Support improved. #1318
851
+ * Tables support added to FB Instant Articles #1266
852
+ * Demo link added in the Theme selector option #1248
853
+ * Remove invalid attributes from multiple tags which reduces critical validation errors and validates pages.
854
+ * AMP makes a problem in archive page label, when it is active in non-amp version #1304
855
+ * placeholder-icon.png is 404 fixed #1310
856
+ * Category & Tags switches for Single added. #1055
857
+ * Copy Content (Custom AMP Editor) Option Not showing with Page Builder of SiteOrigin issue fixed #1280
858
+ * Improving UX with: when AMP support is off for a specific post type then all the AMP related metaboxes should be removed #1289
859
+ * Options Panel Options rearranged, labels rewritten, descriptions repositioned for better User interaction [commit]
860
+
861
+ = 0.9.65.2 (25th October 2017) =
862
+ * TypeWatch is not a function #1299
863
+ * Error with BackupBuddy fixed #1303
864
+
865
+ = 0.9.65.1 (24th October 2017) =
866
+ * AMP Minifcation Issues fixed
867
+
868
+ = 0.9.65 (22nd October 2017) =
869
+ * View more details on https://ampforwp.com/new/
870
+ * Favicon for AMP #1039
871
+ * AMP Minification option added with Performance Tab in Options #1286
872
+ * Post support is turned off then Meta box should also be removed #1253
873
+ * Excerpt Length feature in Design two and Three #1122
874
+ * Test Contact form plugins and their settings in the options panel #1121
875
+ * Mobile preview in Edit Screen #1082
876
+ * Search feature for Options Panel #1238
877
+ * WordPress Social Share Buttons Validation Issues #1272
878
+ * itemtype attribute is striping in the ul tag #1210
879
+ * Debug Error in Breadcrumb 0.9.64 #1267
880
+ * Disable AMP linking at Wordpress Search Page #969
881
+ * Featured Image is missing #1071
882
+ * Removed ampforwp_plugin_activation_notice #1034
883
+ * Add VK (Vkontakte) Sharing Button #1187
884
+ * Grab the first image instead of post thumbnail for featured image #1189
885
+ * AMP theme framework core changes #1274
886
+ * Grab the first image instead of post thumbnail for featured image #1189
887
+ * Create a Switch on Top of Page Builder #1279
888
+ * Inline Related Posts added that helps you with improving bounce rate #1078
889
+ * Caption Support in Image Gallery Carousel #1172 #1136
890
+ * Instant Articles feed shows sticky posts on top #945
891
+ * Added search check, to fix debug notice
892
+ * Option to hide date from Design 1 & Design 3 Homepage Loop #1264
893
+ * UI labels improvements in the Options panel
894
+ * Sorting out design #2 – static front page #1175
895
+
896
+ = 0.9.64 (15th October 2017) =
897
+ * View more details on https://ampforwp.com/new/
898
+ * Structured Data Type option added. You can now change the structured data format for Posts, Pages and Custom post types #323
899
+ * When comments plugin activate, Comments section should remove. #1093
900
+ * Notification causes a validation error. #1147
901
+ * CSS !important need sanitization #1225 - This will help us to validate tens of thousands of pages.
902
+ * Strange spaces when using Sassy Social Share #1185
903
+ * Remote CDN use? Let's host it? #549
904
+ * Typo fix for Linkedin Profile Page URL section #905 [Thanks to Prayag @pra85]
905
+ * Replace fastimage with fasterimage for PHP 5.4+ #1191
906
+ * Debug Errors Post 0.9.63 #1219
907
+ * Ad5 code injected twice #1116
908
+ * Homepage Support must be Off when we turn Off Homepage Support. #738
909
+ * Add custom class in post pagination for styling #1100
910
+ * Removed the Lazy Loading issue of Schema Theme #1170
911
+ * H1 tag for archive titles (Commit) #1155
912
+ * Alt tag for the Logo #1155
913
+ * Design 3 Menu RTL issue fixed #1106
914
+ * Ability to add dynamic classes in body tag #1237
915
+ * Warnings fixed on 404 page #1243
916
+ * Properly structured data for Homepage, Custom Frontpage and Blog #1155 #1242
917
+ * Option added to Enable/Disable categories and Tags links from Single #1155
918
+ * Fatal error after 0.9.63 fixed #1220
919
+ * Debug Error due to vendor AMP #1213
920
+ * PHP warning on line 147 after 0.9.63 #1241
921
+
922
+ = 0.9.63 (8th October 2017) =
923
+ * View more details on https://ampforwp.com/new/
924
+ * Category and Tag Base Remover as core features #1079
925
+ * Hide AMP on Posts option added #935
926
+ * Installation Setup Screen Added for new users
927
+ * Validation for the session in PHP #1158. PR by Bryan Contreras @bryan3561
928
+ * All the amp pages should work perfect with Plain Permalink settings #488
929
+ * WYSIWYG TinyMCE editor added for the Text Module in AMP Page Builder #1205
930
+ * WPML Static Front Page Support for title and description with Yoast. #1143
931
+ * Row Settings area added for AMP Page Builder #1148
932
+ * xlink attribute causes Validation Issues #1149
933
+ * Posts with no images on Archive pages are squeezed to 65% #1058
934
+ * Body Class to target specific pages #1123
935
+ * Option to enable/disable Breadcrumb #1129
936
+ * Debug errors due to Breadcrumbs fixed #1109 #1130 #966
937
+ * Visit AMP option added below the View Site in Dashboard. #1076
938
+ * Many Debug errors fixed #1109
939
+ * Textarea for body tag which will help people add AMP Auto Ads #1064
940
+ * Structured data improvements #1048 #1044 #1085 #1118
941
+ * Twitter share URL based on users choice, you can allow people to share pretty links and short links. #1097
942
+ * Author Avatar removed code fixed which has been displayed in the div "amp-wp-meta amp-wp-byline". #1087
943
+ * Only one figure element is allowed in the article header FB Instant Articles #1127 & #1157
944
+ * Image alt tags are empty and cause issues fixed. #1154
945
+ * Button to copy the content into Custom AMP Editor #783
946
+ * Rename AMP loop widget areas or add proper descriptions #1045
947
+ * Trailing slash issue #1095
948
+ * Related Posts by Post type featured added #1141
949
+ * Ultimate Social Media Icons plugin causes validation issues fixed #1135
950
+ * Adding proper path for functions.php, it was causing strange fatal errors and irregular white screen of death fixed  #1144
951
+ * A smooth way to migrate from other AMP plugins to AMPforWP #1051
952
+ * Alert added on AMP by Automattic installation. #1180
953
+ * Insertion of strange spaces around H1 titles #1069
954
+ * AMP Page Builder and HTTPS #1164
955
+ * You can display comments from more than one vendor such as displaying WP & FB Comments #1150
956
+ * Rename AMP loop widget areas or add proper descriptions #1045
957
+ * FrontPage featured image with srcset #1063
958
+ * An option for Showing featured image from custom field #1098
959
+ * Added the Custom Front Page Title From Yoast SEO #1163
960
+ * Commenting breaks SSI directives causes to display error #1179
961
+ * rel canonical appears more than once in search pages #1195
962
+ * Dev mode in AMP #1083
963
+ * Social Sticky Icons Improvements #1061
964
+ * Grand-Child support added in Design 3 #1152
965
+ * amp-accordion non-critical error in Design 3 & CSS improvements fixed #1152
966
+ * Incorrect @id for mainentity #1080
967
+ * Hide AMP by specific Categories tweaked for performance. Thanks to Joshua Eichorn @jeichorn CTO at Page.ly #1133 - Huge Thanks!
968
+ * amp-auto-ads for sites with RTL support ON #1176
969
+ * Redirected the Google forms to our contact page so that we can take each and every query and answer every person. #1201
970
+ * ui-state-highlight class was conflicting with ACF date picker fixed #1199
971
+ * Responsify WP Lazy loading causes blank image (Compatibility) #1131
972
+ * amp-carousel scripts loading on the second page fixed in Design 3
973
+ * Show Design screenshot while selection of design #1209
974
+ * Switches Redesigned for better UX #1211
975
+ * Welcome Page UX Improved #1214
976
+
977
+ = 0.9.62 (25th September 2017) =
978
+ * View more details on https://ampforwp.com/new/
979
+ * INTRODUCING Page Builder 2.0 for AMP! [Learn More & Watch the Video](https://ampforwp.com/tutorials/article/amp-page-builder-installation/)
980
+ * Documentation & Help links improved
981
+ * Post type specific classes for targetting
982
+ * Design name restored in Options panel (It was recently renamed to Appearance)
983
+ * Minor Bug fixes as well
984
+
985
+ = 0.9.61 (10th September 2017) =
986
+ * View more details on https://ampforwp.com/options-restructured/
987
+ * Options Panel Restructured – Options were dividing into two parts: Settings and Appearance.
988
+ * AMP Theme Framework Core Support Added. You can now create themes of your own in just minutes.
989
+ * WPML Static Front Page Support #1111
990
+ * Notification message disables when CF7 & gravity form is activated. #1107
991
+ * Space after On in Design 3 #1114
992
+
993
+ = 0.9.60 (4th September 2017) =
994
+ * View more details on https://ampforwp.com/0-9-60-released-improved-redirection-66th-update/
995
+ * Class added to View non-amp anchor tag
996
+ * Params added properly to get rid of a warning #1077
997
+ * rel=attachment noopener generating validation errors #1090
998
+ * Breadcrumbs Support Added #701
999
+ * Enable / Disable button added for Navigation Menu #735
1000
+ * Move the ad code for Instant Article down after the article #964
1001
+ * Add analytics code of FB instant articles properly #1096
1002
+ * datetime Tag not stripping properly #1043
1003
+ * Mobile redirection on custom post types #1028 #1052
1004
+ * Mobile Redirection causing extra redirect #879 #933
1005
+ * Proper mobile redirection on Homepage #1052
1006
+ * View non-amp on blog will redirect to blog
1007
+ * Blog will redirect to blog irrespective of AMP Homepage option #871
1008
+ * Dont redirect if archive support is disabled #1052
1009
+ * non-amp category pages should redirect to non-amp pages if turned off from Hide AMP #999
1010
+ * Disable amp for forum plugin (wpforo) #592
1011
+
1012
+ = 0.9.59 (23th August 2017) =
1013
+ * Design 3 Images were not aligned properly. Fixed. #1040
1014
+ * Caption in the design 3 improved
1015
+ * Jetpack File not loading throwing fatal error #1038
1016
+ * If the mobile redirection is ON and the category is excluded to display the AMP then it should redirect properly
1017
+ * Custom Editor Compatibility issue with SiteOrigin PageBuilder fixed #997
1018
+ * Native Twitter Embed support
1019
+ * Added a hook after the body tag: ampforwp_body_beginning (commit)
1020
+ * GTM in AMP Improved #958
1021
+ * WP User Avatar compatibility Added #975
1022
+ * Alt tag on frontpage featured image added #1050
1023
+ * Blurred Images on the frontpage fixed #1050
1024
+ * Need to escape alt tag #1049
1025
+ * Debug errors & PHP warnings were fixed #859 #811 #830 #810
1026
+ * Proper rel canonicals for inner pages #1047
1027
+ * Added Video sanitizer for comments #1053
1028
+ * When activating the AMP plugin, display a notification in the popup. #1036
1029
+ * Video Sanitizer added for Comments
1030
+
1031
+ = 0.9.58.1 (9th August 2017) =
1032
+ * Jetpack conflict issue solved #1038
1033
+ * Genesis SEO Support added #1013
1034
+ * Fixed Wrong SEO title issue #1013 and #836
1035
+ * Design 3 Carousel script loading method improved #990
1036
+
1037
+ = 0.9.58 (9th August 2017) =
1038
+ * View more details on https://ampforwp.com/new/
1039
+ * Genesis SEO for AMP support added
1040
+ * AMP 0.4.2 Vendor Bundled for making it crash proof
1041
+ * Archive desc only on 1st page #1029
1042
+ * Ads are not working after 0.9.6 #1030
1043
+ * Fixed the Post 0.9.57 Update Bugs #1025
1044
+ * All Images are aligned on left side in design 3 #1031
1045
+ * Custom frontpage title issue in Design 3 fixed
1046
+
1047
+ = 0.9.57 (5th August 2017) =
1048
+ * See the Full changelog https://ampforwp.com/0-9-57-released-compatibility-issue-fixed-62nd-update/
1049
+
1050
+ = 0.9.56 (31st July 2017) =
1051
+ * View more details on https://ampforwp.com/page-break-in-amp/
1052
+ * Page Break / NextPage (Pagination) Support Added #834 #857 (Improvement)
1053
+ * Show/Hide AMP for Categories of Posts or All posts #872 (Improvement)
1054
+ * Adding analytics capabilities to Instant Articles #978
1055
+ * JetPack Plugin Conflict Solved #971
1056
+ * Social sharing code improved. amp-social-share js is getting added for line and WhatsApp social share #981
1057
+ * Code improvement for rel canonicals(home and archive)
1058
+ * Perfect SEO URL + Yoast SEO Compatibility #982
1059
+ * Some styling for tags to show up properly
1060
+ * Undefined index notices #960
1061
+ * Non-amp category pages should redirect to non-amp pages if turned off from Hiding AMP #999
1062
+ * Page builder text and button module issues #972
1063
+ * Documentation links updated in the Options panel
1064
+
1065
+ = 0.9.55 (13th July 2017) =
1066
+ * View more details on https://ampforwp.com/0-9-55-released-improvement-update-61st-update/
1067
+ * Disqus Comments show up even when disabled per post #931
1068
+ * Unnecessary: Adding the Markup for AMP Woocommerce latest Products #929
1069
+ * H3 inside OL in Related-Posts.php #930
1070
+ * Advertisement Options in Instant Articles #943
1071
+ * Incompatible with bootstrap plugin #525
1072
+ * Error in tag and category links #934
1073
+ * Pagebuilder Button module link had issues #951
1074
+ * Unnecessary: Adding the Markup for AMP Woocommerce latest Products #929
1075
+ * WPtouch Pro Compatibility Issues #927
1076
+ * Better scripts compatibility in Single of post types #757
1077
+ * Instant Articles Error: "The HTML element does not contain any text" #949
1078
+ * added a filter in all the dates so a user can change the date format and modify #962
1079
+ * Design3 Menu Arrows are clickable along with the links #952
1080
+
1081
+
1082
+ = 0.9.54.2 (4th July 2017) =
1083
+ * Minor bug post 0.9.54 bug fixed
1084
+
1085
+ = 0.9.54 (4th July 2017) =
1086
+ * View more details on https://ampforwp.com/new/
1087
+ * Facebook Instant Articles Support #862
1088
+ * Exclude Some Pages from Mobile Redirection #914
1089
+ * After 0.9.53 update amp-social-share js missing (critical issue) #924
1090
+ * Hooks added in Header (above and below)
1091
+ * View non AMP[Code improvement] #928
1092
+ * Pages are not supposed to show meta like this, especially Categories #894
1093
+ * Monarch plugin having design issues #925
1094
+ * Show AMP Hide AMP Check Box Fixes #794
1095
+
1096
+ = 0.9.53 (19th June 2017) =
1097
+ * View more details on https://ampforwp.com/stability-validation-issues-59th-update/
1098
+ * Compatibility Issue with Rocket Lazy Load plugin #907
1099
+ * Link color issue with UX of Color Pickers in Design 3 #731
1100
+ * amp-analytics js appears more than once when Google tag manager is used #885
1101
+ * SEO by SQUIRRLY is adding analytics twice #678
1102
+ * Fatal error when WPSEO is activated #900
1103
+ * Design 3 Sticky header should have an option #625
1104
+ * Search form was enhanced, it can now be used on the websites without https certificate. That will certainly fix a lot of validation issues. #912
1105
+ * Yandex Metrika support in AMP #585
1106
+ * Histats Analytics Support #880
1107
+ * Chartbeat Analytics Support #882
1108
+ * Do not strip Rel from anchor tags #790
1109
+ * Design close Resulting Blank Screen in AMP Site #642
1110
+ * Logo size is not applying #817
1111
+ * AMP Publisher logo guidelines #162
1112
+ * Remove amp-social-share extension .js from Custom Frontpage #899
1113
+ * Add compatibility with Sassy Social Share #679
1114
+ * Remove Disallowed ‘like’ tag from Facebook Like button by Ultimate Facebook plugin
1115
+
1116
+ = 0.9.51.1 (12th June 2017) =
1117
+ * Redirection issue after 0.9.51 Update.
1118
+ * Improved compatibility with plugins.
1119
+
1120
+ = 0.9.51 (8th June 2017) =
1121
+ * View more details on https://ampforwp.com/page-builder-released-in-amp/
1122
+ * Page Builder Support added ( See Tutorial at https://ampforwp.com/tutorials/page-builder/ )
1123
+ * Comments are not showing properly when words are long #861
1124
+ * Remove amp-social-share extension .js from Pages #853
1125
+ * The tag ‘amp-sidebar extension .js script’ appears more than once in the document #828
1126
+ * Remove Advertisement tab #839
1127
+ * Compatibility with Slide-in Plugin by WPMU dev #866
1128
+ * Mobile redirection issue with bbpress #867
1129
+ * All the data must be properly sanitize in the sidebar #849
1130
+ * AMP html should not be added on the second page of comments
1131
+ * Author page’s support #456
1132
+ * URLs in comments should be clickable(links) #869
1133
+ * Featured image should be centered in desktop mode #870
1134
+ * Added More Hooks #721 (Documentation on this coming soon!)
1135
+ * Page 2 goes to the wrong URL #865
1136
+ * Proper Title and meta for homepage and posts #850
1137
+ * Gist Support added #608 – Just add a shortcode and enjoy Devs (Ex: amp-gist id="b9bb35bc68df68259af94430f012425f )
1138
+ * /blog/amp pagination not working #875
1139
+ * separate the Text and Date format in design 2 #876
1140
+ * Comments show in AMP w/o breaks between paragraphs #873
1141
+ * If no featured image below hooks are not working #877
1142
+ * Change meta name Viewport and its value #878
1143
+ * Bolt icon in option #474
1144
+ * Code restructuring and code quality improvements.
1145
+ * Create a seperate function for comment code in frontpage.php #682
1146
+ * Remove all the duplicate code from frontpage.php of all the designs and use hooks to add the code instead of static code #889
1147
+ * Few Debug errors removed.
1148
+
1149
+ = 0.9.50 (24 May 2017) =
1150
+ * View more details on https://ampforwp.com/facebook-comments-in-amp/
1151
+ * Design 3 Social Icons issue #832
1152
+ * View non AMP leads to /?nonamp=1 #814
1153
+ * Youtube shortcode compatibility improved #557
1154
+ * welcome.php should be shown only if user is “administrator” #696
1155
+ * Facebook comments support added in AMP #825
1156
+ * WP Like Button Compatibility #841
1157
+ * Custom Taxonomy Support added with Custom Post Type Extension.
1158
+ * Front page – comments not found as expected #837
1159
+ * Fixed xml:lang tag issue #848
1160
+ * Sanitize Iframe in the archive description Fixed #845
1161
+ * Compatibility with Newspaper Theme by TagDiv #842 and #796
1162
+ * Some debug problems (blog page, style.php) #838
1163
+ * Featured Image hooks added
1164
+ * Twitter is misspelled #854
1165
+ * The core concept of the AMP Content builder has been built.
1166
+
1167
+
1168
+ = 0.9.49 (12 May 2017) =
1169
+ * View more details on https://ampforwp.com/0-9-49-released-small-important-bugs-fixed-56th-update/
1170
+ * Option added to display the excerpt in Single #806
1171
+ * Ability to add new invalid tags to filter out from AMP pages #809
1172
+ * In frontpage, comment button is pointing to wrong URL #812
1173
+ * Call now button and search is overlapping in Design-1 #784
1174
+ * Sticky Social Icons should be off if the CTA notification bar is on #788
1175
+ * Author bio in Design 1 and 2 #732
1176
+ * Styling in Taxonomy description causing validation issues #798
1177
+ * Twitter share(handle, url positions fixed) #815
1178
+ * Tables responsiveness in ALL Designs #726
1179
+ * Output all the categories and tags with their own ID’s in the div classes #750
1180
+ * Social Share Icons Overlap with Leave A Comment in Design 3 #716
1181
+ * Effective Measure Support on AMP #297
1182
+ * Custom AMP editor on pages should only be shown when page support is ON #756
1183
+ * AMP on website.com/blog without need of separate installation #775
1184
+ * GTranslate Compatible #819
1185
+ * Images and amp-anim styling added #725
1186
+ * Filter to make the title in a post to a link #727
1187
+ * Author Bio and Social Share button must not come in Pages #770
1188
+ * StatCounter is now compatible with AMP #361
1189
+ * Line Social media support #500
1190
+ * Footer menus for Design 1 & Design 2 #623
1191
+ * Strip out src=”about:blank” When Gravity Forms used #804
1192
+ * Add Compatibility with Crazy Lazy load plugin #751
1193
+ * Meta Titles and Description issues fixed with Yoast, All in one SEO and The SEO Framework #813
1194
+ * Double quotes in the Excerpt of the meta description is making AMP Invalidated #818
1195
+ * Missing featured image on static front page #824
1196
+ * Fatal error while activation: see the video 0.9.49 Beta #827
1197
+ * Review this code in archive.php in all 3 designs. #826
1198
+
1199
+
1200
+ = 0.9.48 (28 April 2017) =
1201
+ * View more details on: https://ampforwp.com/0-9-48-released-step-towards-multilingual-support-55th-update/
1202
+ * The default translation method of WordPress added. (Option in Translation panel to switch between * Translation panel and POT file #540)
1203
+ * A new Advertisement slot added above the related posts in the Single. It not only gives better options for people to display ads but this ad slot is also very handy if you are using ad companies like Taboola and RevContent.
1204
+ * Another Advertisement slot added below the post title in the Single post.
1205
+ * Fatal error: require_once report-bugs.php #747 fixed
1206
+ * Add / for codes in Meta Description #766 fixed
1207
+ * Controls re-adjusted & Renamed title of yoast description control in Options panel
1208
+ * Design-3 Slider URL redirecting to non-AMP page #758
1209
+ * Added new sanitizer For HTML to AMP-HTML conversion
1210
+ * Sanitized Archive descriptions so that it would convert to AMP
1211
+ * Comments sanitized with new sanitizer so that HTML tags automatically become AMP compatible.
1212
+ * 301 redirects on non-pretty internal links #767
1213
+ * Create a filter to modify the value of rel="amphtml" #778
1214
+ * Max-width added for images in comments
1215
+ * If in WooCommerce ?amp endpoint set then update href.
1216
+ * Undefined Variable (Debug) #733 and many other debug issues were fixed
1217
+ * Show last updated Post instead of published date #575
1218
+ * WooCommerce Widget added to display latest products on homepage. #763
1219
+ * add amp_post_template_above_footer hook global in all the designs #779
1220
+ * Excerpt on top of the content in Single #665
1221
+ * Subscribe box has been improved for the UX needs #712
1222
+ * Notice warnings since 0.4.2 update #740
1223
+ * AMP Comments Form Integration with the extension
1224
+ * Filter added on the loop in Homepage of the Design 3 so that it can be modified with an external plugin.
1225
+ * 404 on paged home page #781
1226
+ * Twitter handle should be at the end of the tweet not in the beginning #787
1227
+ * Wrong Rel Canonical for AMP Custom Frontpage #799
1228
+ * Merged a pull request #761 that will improve the title and description output that is much more stable and flexible for future enhancement and use. It was contributed by Sybre Waaijer - Thanks mate for the contribution, we (our team and users) really appreciate your hard work done on this code.
1229
+ * Extension page user experienced improved.
1230
+ * Removed old Youtube installation video and replaced with new one.
1231
+
1232
+ = 0.9.47.2 (12 April 2017) =
1233
+ * Design-3 Slider URL redirecting to non-AMP page #758
1234
+ * Ads showing in comments #768
1235
+
1236
+ = 0.9.47.1 (11 April 2017) =
1237
+ * Meta description option improved in SEO section #766
1238
+ * Fatal error: require_once report-bugs.php #747
1239
+
1240
+ = 0.9.47 (10 April 2017) =
1241
+ * View more details at https://ampforwp.com/0-9-47-released-54th-update/
1242
+ * Meta saving method updated for customAMP content editor checkbox was causing some conflict.
1243
+ * Wrong Yoast title and structured data in Custom Frontpage fixed
1244
+ * CSS minification all 3 designs
1245
+ * Polylang flags in menu was causing validation issue, is now resolved
1246
+ * WPML flags in menu was causing validation issue, is now resolved
1247
+ * Standardized function created for content sanitization.
1248
+ * Archive description now displays AMP compatible markup
1249
+ * Comments markup sanitized for AMP
1250
+ * Design 3 images not aligned properly, fixed
1251
+ * Images are aligned to center in Design 1.
1252
+ * carousel ending with //amp instead of /amp – fixed #753
1253
+ * Title of the Post along with Post link when shared in twitter #683
1254
+ * Ads were cutting in half in RTL, fixed
1255
+ * Add / at the end of AMP links with in the AMP pages (Internal links) #668
1256
+ * Rendering the wrong URLs in front page if paged #742
1257
+ * Option to turn off AMP on all pages, so people can turn on only for specific pages #746
1258
+ * Need Meta Description on amp pages #741
1259
+ * Woocommerce Loop shortcode updated
1260
+ * Call Now Button added in header #563
1261
+ * Post images are not centered in Design 3 #695
1262
+ * UX of GTM settings done, since users were getting confused #700
1263
+ * Front page amphtml fixed for paginated pages
1264
+
1265
+ = 0.9.45.6 (31 March 2017) =
1266
+ * Installation Process from welcome page was not working after WP Plugin DIR API change was fixed.
1267
+ * WP Rocket Minifcation and Concatenation was not working, its fixed now.
1268
+ * WP Rocket was tested properly to make sure everything is working fine.
1269
+
1270
+ = 0.9.45.5 (25 March 2017) =
1271
+ * WP rocket conflict solved
1272
+ * Cannot set property ‘innerHTML’ of null issue fixed
1273
+
1274
+ = 0.9.45.3 (21 March 2017) =
1275
+ * Post 0.9.45 bugs fixed and released as an urgent update.
1276
+
1277
+ = 0.9.45.1 (19 March 2017) =
1278
+ * Post 0.9.45 bugs fixed and released as an urgent update.
1279
+
1280
+ = 0.9.45 (18 March 2017) =
1281
+ * View more details at https://ampforwp.com/0-9-45-released-compatibility-rtl-53rd-update/
1282
+ * W3Total cache compatibility added
1283
+ * RTL Support added for Right-to-Left language websites.
1284
+ * Comments Pagination feature added
1285
+ * WP-Rocket Compatibility added
1286
+ * WPML Compatibility added
1287
+ * Quantcast analytics support added
1288
+ * ComScore support added
1289
+ * Custom Yoast title support added #685
1290
+ * WooCommerce Shortcode: Allows you to display WooCommerce Products. [amp-woocommerce num=6] will display the 6 products from WooCommerce. [amp-woocommerce num=6 link=noamp] will display 6 products but they will go to non-amp website, if you want to link to AMP version of the page then use [amp-woocommerce num=6 link=amp]
1291
+ * Admin area UX improvements
1292
+ * Adding notifications script in the correct way
1293
+ * Comments now display on frontpage as well.
1294
+ * Re-positioned non-amp Header link control to the right section.
1295
+ * ?nonamp=1 only displays when the Mobile redirection is on
1296
+ * Properly adding iFrame js.
1297
+ * Custom Post type incompatibility fixed
1298
+ * Widgets added to the Custom Frontpage.
1299
+ * Stripping shortcodes from excerpts.
1300
+ * Custom content on static frontpage had over riding issue #687
1301
+ * Option added for controlling number of comments
1302
+ * Welcome page should be shown only if user is “administrator” #696
1303
+ * Digg Digg social share compatibility #694
1304
+ * Removed unnecessary lines from Design 3
1305
+ * Sanitized Archive Description to amp Compatible #659
1306
+ * Author box now displays HTML properly #645
1307
+ * Date added Design-3 in meta #583
1308
+ * Options link was removed from wp-admin tool bar after a feedback from a user.
1309
+ * Footer sub menus layout compatibility.
1310
+
1311
+
1312
+ = 0.9.44 (5 March 2017) =
1313
+ * View more details at https://ampforwp.com/user-experience-52nd-update/
1314
+ * Added Welcome Screen for better User experience. [Enhancement]
1315
+ * Undefined Index debug error resolved [Bug fix]
1316
+ * All in one SEO Support support tested [3rd party compatibility]
1317
+ * Frontpage title in Design 3 is out of the container #644 [Bug fix]
1318
+ * Default Table markup in AMP #643 [Enhancement]
1319
+ * AMP carousel is not working on Frontpage #641 [Bug fix]
1320
+ * Social share .js was getting added even when it was not required #638 [Bug fix]
1321
+ * Search Feature added for Design 1 & Design 2 [Major Improvement]
1322
+ * Accordion script loading issue in Design 3 #634 [Bug fix]
1323
+ * ?nonamp=1 links should be nofollow #622 [Bug fix]
1324
+ * Same Header and Color Scheme are making header elements invisible #629 [Enhancement]
1325
+ * In Search AMP rel canonical was different #631 [Bug fix]
1326
+ * Non-AMP link in Design 3 was not working when mobile redirection was enabled #632 [Bug fix]
1327
+ * Search form text strings are now added in the translation panel #607 [Bug fix]
1328
+ * Load AMP-ads conditionally only if ads are available #609 [Bug fix]
1329
+ * Added compatibility with Custom post type extension. Option to hide/show AMP on all custom post types #587 [Bug fix]
1330
+ * Report a Bug & Request feature links added [Enhancement]
1331
+ * If there was no menu set in Design 3 then all pages were getting displayed. #613 [Bug fix]
1332
+ * The tag Font is disallowed #616 [Validation Improved]
1333
+ * index/noindex separately added for Tags and also for Categories #606 [Enhancement]
1334
+ * Use of undefined constant AMP_QUERY_VAR #596 [Bug fixed]
1335
+ * Logo is not centered in Design 3 #586 [Bug fixed]
1336
+ * Remove defer, a very rare type of defer was getting added #589 [Validation Improved]
1337
+ * Disqus comments iframe had scrolling issues #566 [Bug fixed]
1338
+ * Left side blank gap in the RTL in design 2 #541 [Bug fixed]
1339
+ * Inline Styles not working correctly in Custom AMP Editor #533 [Bug fixed]
1340
+ * Re-save permalinks issues. Flushing rewrites with options saved. #511 [Improvement]
1341
+ * Code review and cleaning of the customizer #404 [Code Cleaning]
1342
+ * Google Search iframe had some header alignment issues in Design 3. #624 - Thank you Leo Osa @leoosa for the contribution! [Bug fixed]
1343
+ * AMP Frontpage + Override AMP Content = Blank page #604 [Bug fixed]
1344
+ * Widget area added on the homepage with an 'AMP Category Blocks' widget. It means you can display multiple category blocks the homepage. This allows you to display complex layouts, even on AMP. [Major Improvement]
1345
+ * Auto-append /amp at the end of internal links in Menu with an option in the Menu section of the options panel #531 [Major Improvement]
1346
+ Reformatting and Minifying of stylesheet [Code Cleaning]
1347
+ * Created a new section for Homepage and moved some controls from other areas to the home section for the better user experience. [User Experience]
1348
+ * Override Homepage Thumbnail size option added. It will give you more control over your thumbnails. [Major Improvement]
1349
+ * New color picker added to change the color of the header elements in the Design 3 to give you better control over the design. [Enhancement]
1350
+ * Extra amp-carousel script loading is now fixed. [Bug fixed]
1351
+ * Crafting of layout code in design 2 and design 3, especially with social icons area. [Code Cleaning]
1352
+ * Design of search form was not clickable in iOS devices #621 [Bug fixed]
1353
+ * Disqus iframe was loading even when there was no disqus name was added in the option. We found that many users might be enabling it without knowing the output and then they seem to forget, which was causing them validation warnings. [Bug fixed]
1354
+
1355
+ = 0.9.43.6 =
1356
+ * View more details at https://ampforwp.com/stability-sprint-3-51st-update/
1357
+ * Typo in the is_home() function fixed
1358
+ * Option to hide/show AMP on all custom post types #587
1359
+ * False detection by Windows defender tool fixed
1360
+ * Conditional tags were not compatible with Advanced AMP ads which were causing some conflicts but is now fixed.
1361
+
1362
+ = 0.9.43.5 =
1363
+ * View more details at https://ampforwp.com/stability-sprint-2-50th-update/
1364
+ * Fixed shortcodes issue in related posts #543
1365
+ * Iframe Scripts Added properly
1366
+ * Proper conditions added for the social section of Design 3
1367
+ * Featured Image issue stretched in Design 2 & 3
1368
+ * Removed extra global $redux_builder_amp;
1369
+ * Custom Logo Dimensions option added #479
1370
+ * Index & NoIndex options added for SEO section. #558
1371
+ * Added URL for rewrite flushing rules in Options
1372
+ * Option to enable and disable the Author area in Design 3#577
1373
+ * Rel Nofollow added in credit link
1374
+ * debug issue solved: fn_offset not defined
1375
+ * debug issue solved: global $post not declared
1376
+ * The word 'ago' is now translatable in design 3
1377
+ * The word 'read next' is translatable now
1378
+ * Tablepress compatibility added #392
1379
+ * Secure API server is now serving through Google Cloud Manager.
1380
+ * Thrive Content builder was displaying twice when the Custom AMP content was on. It was a complex issue which has been solved now.
1381
+ * amp-ad extension.js script was loading if the Ads are not enabled. #598
1382
+ * Social Share Extension Included on Homepage even if we didn't have social icons #599
1383
+ * Installation UX improvement #593
1384
+ * Removed duplicate global variable
1385
+ * Proper OG tags added #588
1386
+ * Proper instructions added for Custom AMP content #471
1387
+
1388
+
1389
+ = 0.9.43.1 =
1390
+ * View more details at https://ampforwp.com/0-9-43-1-released-stability-sprint-1-49th-update/
1391
+ * Emoji in comments leads to AMP errors
1392
+ * Design 1 showing time on archives
1393
+ * Added some space between the archive label.
1394
+ * Lazy loading plugins compatibility #544
1395
+ * Custom header and footer areas
1396
+ * Sticky posts now come on top #564
1397
+ * Footer non-amplink added in design 3 #562
1398
+ * HTML Paragraph tag is shown in the title in category! #518
1399
+
1400
+ = 0.9.42 =
1401
+ * View more details at https://ampforwp.com/design-three-update/
1402
+ * Design 3 was released – Video Overview along with new options and features. View the video overview at: https://www.youtube.com/watch?v=ub1pwskt3Rc [Major Feature]
1403
+ * Ticket #517 – Added Upload field into Redux core [3rd party Compatiblity]
1404
+ * Ticket#529 Controls for archive titles added [Improvement]
1405
+ * Ticket #548 Jetpack photon code removed
1406
+
1407
+ = 0.9.41 =
1408
+ * View more details at https://ampforwp.com/disqus-comments-in-amp/
1409
+ * Disqus Comments in AMP Support Added [New Feature] - This feature can be enabled from Dashboard > AMP Options > Disqus Comments
1410
+ * AMP WooCommerce supported tag was missing after the last update. [Bug fix]
1411
+ * Homepage & Related Posts was displaying private and protected posts, which is now fixed [Bug fix]
1412
+ * Next previous links added in Design 1 [Enhancement]
1413
+ * Invalid Post Time displaying in the homepage of Design 1 [Bug fix]
1414
+ * Twitter share now includes the twitter handle of the author with setting in options [Enhancement]
1415
+ * Emoji in comments leads to AMP errors was fixed [Bug fix]
1416
+ * Date are now displayed on archives in Design 1 [Enhancement]
1417
+ * When RTL enabled logo merges with nav bar was fixed [Bug fix]
1418
+ * Jetpack Photon compatibility added [3rd Party Compatibility]
1419
+
1420
+ = 0.9.40 =
1421
+ * View more details at https://ampforwp.com/0-9-40-released-biggest-stability-update/
1422
+ * Proper endpoints added [Improvement]
1423
+ * Flush Rewrites properly [Improvement]
1424
+ * REL Canonical properly getting added. [Improvement]
1425
+ * Proper Frontpage Canonical added [Improvement]
1426
+ * Added Base name support for categories and tags [Improvement]
1427
+ * Redirection of excluded post solved. [Bug fix]
1428
+ * Archives properly redirecting to the right URL [Bug fix]
1429
+ * Homepage redirection solved [Bug fix]
1430
+ * Plusone tag is stripped properly. [Validation Issue fixed]
1431
+ * Archives are now clickable. [Improvements]
1432
+ * WP_Query filter added for better customizability of Homepage loop. [Better Customizations]
1433
+ * Social share boost plugin compatibility. [3rd party Customizations]
1434
+ * Removed H1 from the frontpage even if it is not available. [Improvement]
1435
+ * H3 instead of H1 for Site title. So there is only one H1 per page. [SEO Improvement]
1436
+
1437
+ = 0.9.38 =
1438
+ * View full details at https://ampforwp.com/google-tag-manager-for-amp/
1439
+ * Google Tag manager included [New feature]
1440
+ * Iframe max-width added [Improvement]
1441
+ * Paginated pages have different titles now. [Bug fix]
1442
+
1443
+ = 0.9.37 =
1444
+ * View full details at https://ampforwp.com/category-tags-archive-support-added/
1445
+ * Debug issues solved [Bug fix]
1446
+ * Remove Extra styling added by other Themes/ Plugins [3rd party themes and plugin Support]
1447
+ * Category, Tags & Archive Support with titles added [Enchancement]
1448
+ * Archive Title support added [Enchancement]
1449
+ * There were some issues with attachments [Bug fix]
1450
+ * removed ? from amp url's [Improvement]
1451
+ * Mobile redirection for Archives added and 404 redirections removed for archives [Improvement]
1452
+ * View non-amp version now properly redirects to the normal version. #415 [Bug fix]
1453
+ * Added an option to turn off AMP support for Homepage. [Enchancement]
1454
+ * Too many redirects issue on homepage is fixed #435 [Improvement]
1455
+ * Spell check and G tags are removed for thrive & Spell check compatibility [Better Validation]
1456
+ * If image is not available in gravatar fixed, it was throwing an error #365 #327 [Improvement]
1457
+ * Comment anchor link changed for simplecomment button files in both designs [Improvement]
1458
+ * Redirection Loop issue fixed [Bug fix]
1459
+ * Shortcodes were visible in excerpt, it's fixed now. [Improvement]
1460
+ * Defer onload by other plugins was causing issues #431 [Better Validation & 3rd party support]
1461
+ * Improved Sessions [Improvement]
1462
+ * Advnaced Settings panel was created for better user experience. [Improvement]
1463
+ * Spell check tag was causing validation issues. [Better Validation & 3rd party support]
1464
+ * RTL issue fixed #454 [Bug fixed]
1465
+
1466
+ = 0.9.36 =
1467
+ * Full details at https://ampforwp.com/0-9-36-released-stability-update-43rd-update/
1468
+ * Redux Core Update. Better compatibility with the Salient theme and Themeforest themes & plugins using redux framework in their core, which makes the plugin much stable. [Huge Improvements]
1469
+ * Hide advertisement section if advance ads plugin is active. [Better User experience]
1470
+ * Ultimate Social Media PLUS Plugin Compatibility (Link) [3rd Party plugin Compatibility & Better Validation]
1471
+ * Launch Post Builder button added. One of the important feature called ‘Post Builder’, that is drag and drop post builder was somewhere hidden in the customizer, so positioned it for better visibility from users. [Better UX]
1472
+
1473
+ = 0.9.35 =
1474
+ * Full details at https://ampforwp.com/page-builder-realtime-preview-3rd-party-plugins-compatibility/
1475
+ * Customizer page builder (Design Manager) was not showing real-time preview, we have fixed this issue properly [Bug fix]
1476
+ * Attachment page was having the wrong endpoint. [Bug fix]
1477
+ * Fb:like div has href, showfaces, send and action tag, which was against validation [Validation Improvement]
1478
+ * A plugin (Spam Protection by CleanTalk, no Captcha Anti-Spam) was forcefully adding script into the AMP version. [3rd party Compatibility]
1479
+ * Lang attributes were added [Enhancement]
1480
+ * The tag like was disallowed in the AMP [Validation Improvement]
1481
+ * We did some more testing with Visual Composer & AMP [3rd party Compatibility]
1482
+ * AMP on Pages option was not working in some cases. [Bug fix]
1483
+ * Disable comment button when comments were disabled. This was fixed by @lofesa and was sent as a pull request. Thank you Lofesa!
1484
+ * g:plusone tag was not getting removed properly. [Validation Improvement]
1485
+ * Thrive headline optimizer was having issues in AMP version. [Validation Improvement]
1486
+ * Structured Data Image width issue solved [Enhancement]
1487
+ * BJ Lazy Load was having issues, we have added a fix which will make this plugin compatible with the AMP. [3rd party Compatibility & Validation Improvement]
1488
+ * imageanchor=”1″ was getting added by some 3rd party plugin, this was fixed.[Validation Improvement]
1489
+
1490
+ = 0.9.34 =
1491
+ * Newspaper theme by Tagdiv was having issues, we have fixed this one.
1492
+
1493
+ = 0.9.33 [15th Jan 2017] =
1494
+ * Full details at https://ampforwp.com/debug-errors-shortcodes/
1495
+ * Mobile was not working with Newspaper theme by Tagdiv [Bugfix]
1496
+ * Debug errors fixed, Code is now much cleaner.
1497
+ * New rewrite rules for homepage pagination. It had some paginated URLs with wrong amphtml tag.
1498
+ * Extra analytics file was loading. Better compatibility with Yoast & Monster analytics.
1499
+ * Properly removes AMP if turned off from Post panel
1500
+ * z-index position improved on Sticky Social bar
1501
+ * Better compatibility with shortcodes.
1502
+ * Divi Standard Layouts Compatibility
1503
+ * Properly Hide AMP posts if excluded. #367
1504
+ * Mobile redirection was causing loop issues which are now fixed.
1505
+ * Some plugins were loading in core AMP js file, which was causing the issues, which is now fixed. [Better Validation]
1506
+ * onclick was getting added in the links on AMP version. Issue fixed. [Better Validation]
1507
+ * thrive_headline tag was getting added in the Title tag which was causing validation issues. Fixed. [Better Validation]
1508
+ * Some interactive plugins were using place, state, city and imap tags which are now fixed. [Better Validation]
1509
+
1510
+ = 0.9.32 [7th Jan 2017] =
1511
+ * Full details at https://ampforwp.com/first-wave-of-polishing-in-2017/
1512
+ * Rel=canonical issue fixed: AMP URL redirect to the normal URL #293 & #332.
1513
+ * Paginated pages on homepage redirect to homepage URL #335
1514
+ * Title of the page should be displayed on the FrontPage #358
1515
+ * Thrive Builder AMP Validation Compatibility, so it will be validated properly in AMP.
1516
+ * Twitter Sharing improved so it gets the data properly #341
1517
+ * Option to change the number of Related Posts #290
1518
+ * Validation errors due to rel="canonical" was missing on some pages
1519
+ * Comment button displays even if the comments are not available
1520
+ * Threaded comments were duplicating, so that issue is solved and added proper CSS for it.
1521
+ * Minor issue with Jetpack Comments fixed.
1522
+ * Missing amp-social-share.js on front page fixed #372
1523
+ * Minor improvements to Title and description tags.
1524
+ * Analytics Script was loading twice when Glue was active.
1525
+ * Page specific class added for better customization compatibility #377
1526
+ * Inline Style support added Fixed #356
1527
+ * Bugs fixed in Email notification pointer
1528
+
1529
+ = 0.9.31 [2nd Jan 2017] =
1530
+ * Proper Details at https://ampforwp.com/amp-0-9-31-released-installation-user-experience/
1531
+ * Proper Condition added for the scripts to load in Frontpage.php
1532
+ * Rel canonical properly added for front pages
1533
+ * 404 and Archive page Mobile redirection code refined
1534
+ * User Experience Improvement: Installation process was improved
1535
+
1536
+ = 0.9.3 [31th December 2016] =
1537
+ * Proper Details at https://ampforwp.com/custom-amp-content-editor/
1538
+ * Custom AMP Editor - Which allows you to override your Content that you had written in Post or page, so you can add the different content just for AMP.
1539
+ * FrontPage had some validation issues. [Bug fix]
1540
+ * Related posts in Design 1 we're redirecting to 404 fixed [Bug fix]
1541
+
1542
+ = 0.9.2.2 [27th December 2016] =
1543
+ * Proper Details at https://ampforwp.com/polishing-user-experience-improvements/
1544
+ * Made the Options panel user-friendly
1545
+ * Social Share on frontpage issue fixed.
1546
+ * Readme.txt made user-friendly.
1547
+ * Archive option removed and some UI improvements
1548
+ * Single was not displaying the Title
1549
+ * 'Type is not allowed' [Validation issue fixed]
1550
+ * noshade tag Validation issue fixed
1551
+
1552
+ = 0.9.2.1 [24th December 2016] =
1553
+ * Proper Details at https://ampforwp.com/step-towards-fixing-amp-validation-errors/
1554
+ * Disabled the Tags and Categories support for AMP for better validation until we find a better solution.
1555
+ * Mobile redirection bug fixed, It was continuously redirecting to the same page [Bug fix]
1556
+ * trailingslashit added to make sure we have proper url for Mobile redirection [Bug fix]
1557
+ * In content AD overlapping the content issue fixed
1558
+
1559
+ = 0.9.2 [23th December 2016] =
1560
+ * Proper Details at https://ampforwp.com/mobile-redirection/
1561
+ * AMP Mobile Redirection Feature added. It can be turned on from Dashboard > General and then Mobile Redirection. [New Feature]
1562
+ * Archive title and description added [Improvement]
1563
+ * Improved the Speed of the AMP version #321 [Improvement]
1564
+ * Anchor link was not closing fixed #328 [Bug Fix]
1565
+ * Typo in Trailingslashit function which resulted in some issues in the Homepage version [Bug Fix]
1566
+
1567
+ = 0.9.1.2 [20th December 2016] =
1568
+ * Proper Details at https://ampforwp.com/new/
1569
+ * DoubleClick Support
1570
+ * Custom Post Type Support
1571
+ * Ratings Support
1572
+ * Comments Gaping fix
1573
+ * Custom Excerpt code
1574
+ * Better Compatibility with Yoast SEO plugin
1575
+ * AMP Validation error in Design 1 Fixed
1576
+ * Proper Homepage title & Description with Yoast SEO plugin issue fixed
1577
+ * Design -1 Excerpt too big for mobile devices, Fixed
1578
+ * Advertisement support on Design 1
1579
+ * Link to Tags & Categories were having some issues.
1580
+ * AMP looking bad on big devices
1581
+ * AMP validation Improvement: Lightbox plugins compatibility
1582
+ * Huge Progress in AMP Validation Errors: Strip unwanted codes and tags from wp_footer for better compatibility with Plugins
1583
+ * Page Performance: Removed default Google font loading
1584
+ * Page Performance: DNS Prefetch tag added for faster DNS Handshake
1585
+
1586
+ = 0.9.1 [16th December 2016] =
1587
+ * Proper Details at https://ampforwp.com/new/
1588
+ * PHP7 Compatibility
1589
+ * Pagination URLs (Prev & Next) was going to 404 ( #244 | #251 )
1590
+ * Custom CSS not working in Design one (#249)
1591
+ * Enhanced the translation panel by adding Textarea from Redux, which means that we're able to allow HTML in footer like before (#260)
1592
+ * How to remove “Powered by WordPress” from Design-1 of AMP ( #264 )
1593
+ * Non-amp Homepage support added (#267)
1594
+ * using get_avatar() (#259)
1595
+ * Validation issue fixed: The attribute 'rel' may not appear in tag 'div' (#268)
1596
+ * Validation Issue fixed: Script Tag removed from the content.
1597
+ * Featured image in Design 1 in single #261
1598
+ * After Fresh installation - a save is required Fixed
1599
+ * Excerpt length controlled
1600
+ * Design One has thumbnails on the Homepage
1601
+ * Non-AMP link goes to the wrong page, issue fixed.
1602
+ * Archive pages were broken, fixed.
1603
+ * Option to Enable & Disable the Next/Previous links in Single
1604
+ * WhatsApp sharing not working, issue fixed.
1605
+ * Category Taxonomy has extra ':' in the word.
1606
+ * The word 'Ago' is now translatable.
1607
+ * Yoast SEO with AMP compatibility issue fixed.
1608
+ * Several Minor Polishing in the code
1609
+ * Footer Ad gets covered by Sticky Social Icons (#269)
1610
+ * Smaller image size when “image caption” is used in Design-2 (#263)
1611
+ * Footer ad with Sticky Social bar issue fix
1612
+ * Checked with WordPress 4.7
1613
+ * Ad #1 was messing up with the title, issue fixed.
1614
+ * Compatibility improved with AMP WooCommerce.
1615
+
1616
+ = 0.9 =
1617
+ * Proper Details at https://ampforwp.com/amp-pagebuilder/
1618
+ * Drag & Drop Page builder Added: You can easily modify the look of the AMP page using this feature
1619
+ * 100% Yoast Compatible , Now no need to have additionally Glue Installed
1620
+ * 100% completed Translation panel, Now absolutely anything on page is translated
1621
+ * Added Option to turn on/off Page Support
1622
+ * Styling for Tags was Corrected
1623
+ * Made changes to these sections to reflect in the new Design manager : Related Posts, Footer
1624
+ * Default Image alignment styling added
1625
+ * Added Option to turn on/off Page Support
1626
+ * Related Posts Now use Custom Excerpt if it Exists
1627
+ * Now AMP pages wont have Validation errors because of 'rel' attribute in 'div' Tag or 'onclick' attribute in 'a' Tag
1628
+ * <pre> Tag styling issue fixed for AMP pages
1629
+ * Frontpage (Homepage) Compatibility with AMP which means better validation of front page.
1630
+ * WooCommerce Support Added https://wordpress.org/plugins/amp-woocommerce/ (for E-Commerce)
1631
+ * 2 New Designs added
1632
+ * SEO Panel Added
1633
+
1634
+ = 0.8.8 =
1635
+ * Proper Details at https://ampforwp.com/amp-0-8-8-released-translation-panel/
1636
+ * Translation Panel added. You can now easily translate the AMP version from the backend without any complications.
1637
+ * Badge Tag was throwing Validation error
1638
+ * Plusone tag validation error was fixed
1639
+ * Time tag was validation error was fixed
1640
+ * User experience for Mobile devices was improved
1641
+ * Meta info was messing up in smaller devices, it was fixed as well.
1642
+ * Internal AMP linking added for Categories and Tags
1643
+ * Future errors for AMP ads was fixed
1644
+ * Blockquote styling added
1645
+ * “Please Activate parent Plugin settings” added for better User Experience.
1646
+ * Related Post Ux improvement
1647
+ * Plugin version added in Footer source code for better debugging
1648
+ * Added Support for Default WordPress Image alignment
1649
+ * New action hooks added in index page
1650
+ * Featured Image Size options added
1651
+
1652
+ = 0.8.7 =
1653
+ * Proper Details at https://ampforwp.com/amp-0-8-7/
1654
+ * added option to enable/disable AMP on Archive pages (Ticket #188)
1655
+ * Solved 404 on Related Posts (Ticket #178 )
1656
+ * Related posts by either categories or Tags(Ticket #179)
1657
+ * added a link to menu Section from the AMP Options page(Ticket #190)
1658
+ * Added Support for Piwik Analytics(Ticket #163)
1659
+ * Added Support for Segment.com Analytics(Ticket #50)
1660
+ * Added a switch for hiding Non-Amp page link from Footer.( Ticket #189)
1661
+ * Added an Option that strips Users URL from Comments Section(Ticket #180)
1662
+ * Fixed stripping <date> tags from the content , Since it was preventing validation – amp-img issues fixed
1663
+ * UX Improved for every section of AMP Options page
1664
+ * Added Settings button on plugin page
1665
+ * Related posts switch added
1666
+ * Removed carousel.js
1667
+
1668
+
1669
+ = 0.8.6.1 =
1670
+ * Date Tag fix
1671
+ * Few validation issues after 0.8.6 were fixed (Frontpage amp-img strip issue fixed)
1672
+
1673
+ = 0.8.6 =
1674
+ * Proper Details at https://ampforwp.com/amp-0-8-6-released-related-posts-comments/
1675
+ * Related Posts
1676
+ * Post Comments
1677
+ * WhatsApp sharing button – Your visitors can now easily share the content over the whatsapp.
1678
+ * Validation issue fixed by All In One Schema.org Rich Snippets plugin
1679
+ * Removed Google Fonts loading for Performance
1680
+ * New relic Support
1681
+ * Class added to ‘View Non-AMP Version’ text
1682
+ * Archives Structured Data issue fixed
1683
+ * Some instances img tags converted into amp-img automatically.
1684
+
1685
+
1686
+ = 0.8.5.3 =
1687
+ * Canonical issue fixed for Post
1688
+
1689
+ = 0.8.5.2 =
1690
+ * Canonical issue fixed for FrontPage
1691
+
1692
+ = 0.8.5.1 =
1693
+ * Proper Details at https://ampforwp.com/new/
1694
+ * Validation issue fixed: 'Value' tag
1695
+ * Validation issue fixed: The attribute 'contenteditable' may not appear in tag 'a'.
1696
+ * Validation issue fixed: Table markup
1697
+ * Validation issue fixed: nowrap and misc tags
1698
+ * New Relic Support
1699
+ * Tags on off option
1700
+ * Canonical and correct AMP html Redirect issues Solved
1701
+ * NextGEN Gallery Validation Support Added
1702
+
1703
+ = 0.8.5 =
1704
+ * Proper Details at https://ampforwp.com/the-0-4-compatibility/
1705
+ * AMP 0.4 Compatibility Check
1706
+ * Even better Structured Data Validation, Once in for all!
1707
+ * Structured Data Options to eliminate Validation errors
1708
+ * AMP Page Exclude option
1709
+
1710
+ = 0.8.4 =
1711
+ * Proper Details at https://ampforwp.com/blog/structured-data-validation/
1712
+ * Structured Data Validation
1713
+ * Navigation Text Change
1714
+ * Inline Style Validation
1715
+ * Form Validation
1716
+ * Frontpage shows the amphtml rel twice fixed
1717
+ * Facebook Sharing not working
1718
+
1719
+ = 0.8.3 =
1720
+ * Prefix added in the Content filter
1721
+ * Extra space after quote in Ads
1722
+
1723
+ = 0.8.2 =
1724
+ * Proper Details at https://ampforwp.com/blog/the-custom-frontpage/
1725
+ * Custom AMP FrontPage
1726
+ * Featured Image
1727
+ * New Mobile Friendly Advertisement sizes
1728
+ * Single Post Pagination Option
1729
+ * RTL Support
1730
+ * Notifications
1731
+ * Gaping if the Meta was turned off.
1732
+ * Analytics was not fetching the user id properly.
1733
+ * Page was not using the post template along with the AD support.
1734
+ * AMP Endpoint support for Paged when the front page is active.
1735
+ * UI improvement of Admin panel
1736
+ * Few Validation issues fixed
1737
+
1738
+ = 0.8.1 =
1739
+ * Warning: Cannot modify header information error fixed
1740
+ * Validation issue fixed. KK Star Plugin compatible.
1741
+ * Gaping in the smaller screens fixed
1742
+
1743
+ = 0.8 =
1744
+ * Proper Details at https://ampforwp.com/blog/the-change/
1745
+ * Plugin was re-written from scratch and is now built on top of default AMP plugin by Automattic but giving you the same features of the original plugin.
1746
+ * 99.5% Validation issues were fixed.
1747
+ * Page builder & Shortcodes Compatibility Support Added
1748
+ * Conflict with JSON API
1749
+ * Carousel support for Gallery
1750
+ * Better Image stretching and resizing
1751
+ * Youtube Video Embed Support
1752
+ * Vine Embed Support
1753
+ * Twitter oembed Support
1754
+ * Instagram Embed Support
1755
+ * Facebook Video Embed Support
1756
+ * Better Future Compatibility
1757
+
1758
+ = 0.7.7 =
1759
+ * Proper Details at https://ampforwp.com/blog/amp-0-7-7/
1760
+ * Big Validation Error fix Update
1761
+ * Disable AMP support on specific Pages and Posts
1762
+ * Option to disable the Post meta from the Single
1763
+ * Footer Credits and Copyright Text Option
1764
+ * New options for Social Sharing Bar in Single
1765
+ * Jetpack Social & Related Sharing Issue fixed
1766
+ * Gaping in footer if the Sticky bar is enabled
1767
+ * Text domain added on few strings
1768
+
1769
+ = 0.7.6 =
1770
+ * Google Adsense Support Added with AMP-Ad
1771
+ * Wrong Homepage rel amphtml bug fixed
1772
+
1773
+ = 0.7.5 =
1774
+ * Google Analytics Support Added
1775
+ * Logo Support Added. If the logo is disabled, then the Title should be activated.
1776
+ * Color Scheme Feature Added
1777
+ * User friendly Options Panel Added
1778
+ * iFrame support Added
1779
+ * Few Minor Bugs Fixed
1780
+
1781
+ = 0.7.1 =
1782
+ * Bug #24 (Github) fixed
1783
+ * Strip Style tags for faster & better validation
1784
+ * Bug #21 (Github) fixed
1785
+
1786
+ = 0.7 =
1787
+ * Canonical Improved
1788
+ * Navigation Validation bug fixed
1789
+ * Two more validation bugs fixed ('role' and 'tabindex' attribute)
1790
+ * Featured image automatically hides if it is not present
1791
+ * Validation issues in the images of the post's the_content
1792
+
1793
+ = 0.6 =
1794
+ * Improved Navigation Menu
1795
+ * Search Console errors fixed
1796
+ * Social Sharing option
1797
+ * Pages support
1798
+ * Force redirection for mobile users removed and many other bug fixes
1799
+
1800
+ = 0.5 =
1801
+ * Added AMP Markup for Google Structured data. This will fix the issues in Webmaster tools.
1802
+
1803
+ = 0.4 =
1804
+ * Support of Custom menu added for AMP enabled sites
1805
+
1806
+ = 0.3 =
1807
+ * Support of amp-img added in single posts
1808
+ * minor css bug fixed
1809
+
1810
+ = 0.2.5 =
1811
+ * Minor bugs fixed
1812
+ * ?mobile & ?nomobile is now ?amp & ?noamp
1813
+
1814
+ = 0.2 =
1815
+ * White Screen of death issue fixed
1816
+ * Plugin URI updated
1817
+
1818
+ = 0.1 =
1819
+ * Initial version
classes/class-ampforwp-instagram-sanitizer.php CHANGED
@@ -1,4 +1,9 @@
1
  <?php
 
 
 
 
 
2
  /**
3
  * Converts Instagram embeds to <amp-instagram>
4
  */
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
  /**
8
  * Converts Instagram embeds to <amp-instagram>
9
  */
classes/class-ampforwp-walker-nav-menu.php CHANGED
@@ -1,4 +1,9 @@
1
  <?php
 
 
 
 
 
2
  /*Sidebar Nav menu Walker Start*/
3
  class Ampforwp_Walker_Nav_Menu extends Walker_Nav_Menu {
4
 
@@ -35,17 +40,24 @@
35
  $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args );
36
  $id = strlen( $id ) ? ' id="' . esc_attr( $id ) . '"' : '';
37
 
38
- $has_children = $wpdb->get_var("SELECT COUNT(meta_id)
39
  FROM {$wpdb->prefix}postmeta
40
  WHERE meta_key='_menu_item_menu_item_parent'
41
- AND meta_value='".$item->ID."'");
42
 
43
  $output .= $indent . '<li' . $id . $value . $class_names .'>';
44
 
45
- $attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) .'"' : '';
46
- $attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : '';
47
- $attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) .'"' : '';
48
- $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : '';
 
 
 
 
 
 
 
49
 
50
  // Check if menu item is in main menu
51
  if ( $depth == 0 && $has_children > 0 ) {
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
  /*Sidebar Nav menu Walker Start*/
8
  class Ampforwp_Walker_Nav_Menu extends Walker_Nav_Menu {
9
 
40
  $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args );
41
  $id = strlen( $id ) ? ' id="' . esc_attr( $id ) . '"' : '';
42
 
43
+ $has_children = $wpdb->get_var($wpdb->prepare("SELECT COUNT(meta_id)
44
  FROM {$wpdb->prefix}postmeta
45
  WHERE meta_key='_menu_item_menu_item_parent'
46
+ AND meta_value='%d'", $item->ID) );
47
 
48
  $output .= $indent . '<li' . $id . $value . $class_names .'>';
49
 
50
+ $atts = array();
51
+ $atts['title'] = ! empty( $item->attr_title ) ? $item->attr_title : '';
52
+ $atts['target'] = ! empty( $item->target ) ? $item->target : '';
53
+ $atts['rel'] = ! empty( $item->xfn ) ? $item->xfn : '';
54
+ $atts['href'] = ! empty( $item->url ) ? $item->url : '';
55
+ $atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args, $depth );
56
+
57
+ $attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $atts['title'] ) .'"' : '';
58
+ $attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $atts['target'] ) .'"' : '';
59
+ $attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $atts['rel'] ) .'"' : '';
60
+ $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $atts['href'] ) .'"' : '';
61
 
62
  // Check if menu item is in main menu
63
  if ( $depth == 0 && $has_children > 0 ) {
classes/class-ampforwp-youtube-embed.php CHANGED
@@ -1,4 +1,11 @@
1
- <?php require_once AMP__DIR__ . '/includes/embeds/class-amp-base-embed-handler.php';
 
 
 
 
 
 
 
2
 
3
  // Much of this class is borrowed from Jetpack embeds
4
  class AMPforWP_YouTube_Embed_Handler extends AMP_Base_Embed_Handler {
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ exit;
6
+ }
7
+
8
+ require_once AMP__DIR__ . '/includes/embeds/class-amp-base-embed-handler.php';
9
 
10
  // Much of this class is borrowed from Jetpack embeds
11
  class AMPforWP_YouTube_Embed_Handler extends AMP_Base_Embed_Handler {
classes/class-init.php CHANGED
@@ -1,4 +1,10 @@
1
- <?php if ( ! class_exists( 'Ampforwp_Loader', false ) ) {
 
 
 
 
 
 
2
  class Ampforwp_Loader {
3
  public function __construct() {
4
  $this->load_required_files();
1
+ <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ if ( ! class_exists( 'Ampforwp_Loader', false ) ) {
8
  class Ampforwp_Loader {
9
  public function __construct() {
10
  $this->load_required_files();
components/author-box/author-box.php CHANGED
@@ -22,7 +22,6 @@ $author_link = get_author_posts_url($post_author->ID);
22
  if ( function_exists('coauthors_posts_links') ) {
23
  $author_link = coauthors_posts_links($and_text,$and_text,null,null,false);
24
  }
25
- //var_dump($and);die;
26
  $author_image_wrapper = '';
27
 
28
  if ( isset($args['avatar']) ) {
@@ -69,20 +68,20 @@ if ( isset($args['show_time']) ) {
69
  $author_avatar_url = get_avatar_url( $post_author->ID, array( 'size' => $avatar_size ) );
70
  } ?>
71
  <div class="amp-author-image <?php echo $author_image_wrapper; ?>">
72
- <amp-img <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?>src="<?php echo esc_url($author_avatar_url); ?>" width="<?php echo $avatar_size; ?>" height="<?php echo $avatar_size; ?>" layout="fixed"></amp-img>
73
  </div>
74
  <?php } ?>
75
- <?php echo '<div class="author-details '. $author_wrapper_class .'">';
76
  if ( true == $redux_builder_amp['ampforwp-author-page-url'] ){
77
  if ( function_exists('coauthors_posts_links') ) {
78
- echo '<span class="author-name">' .$author_prefix . $author_link . ' </span>';
79
  }
80
  else {
81
- echo '<span class="author-name">' .$author_prefix . ' <a href="'. esc_url(ampforwp_url_controller($author_link)).'"> ' .esc_html( $author_name ).'</a></span>';
82
  }
83
  }
84
  else
85
- echo '<span class="author-name">' . $author_prefix . esc_html( $author_name ) . '</span>';
86
 
87
  //to show date and time
88
  if ( $show_date || $show_time ) {
@@ -96,7 +95,7 @@ if ( isset($args['show_time']) ) {
96
  echo '</span>';
97
  }
98
  if ( $author_description ) {
99
- echo "<p>".$post_author->description."</p>";
100
  } ?>
101
  </div>
102
  </div>
22
  if ( function_exists('coauthors_posts_links') ) {
23
  $author_link = coauthors_posts_links($and_text,$and_text,null,null,false);
24
  }
 
25
  $author_image_wrapper = '';
26
 
27
  if ( isset($args['avatar']) ) {
68
  $author_avatar_url = get_avatar_url( $post_author->ID, array( 'size' => $avatar_size ) );
69
  } ?>
70
  <div class="amp-author-image <?php echo $author_image_wrapper; ?>">
71
+ <amp-img <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?>src="<?php echo esc_url($author_avatar_url); ?>" width="<?php echo esc_attr($avatar_size); ?>" height="<?php echo esc_attr($avatar_size); ?>" layout="fixed"></amp-img>
72
  </div>
73
  <?php } ?>
74
+ <?php echo '<div class="author-details '. esc_attr($author_wrapper_class) .'">';
75
  if ( true == $redux_builder_amp['ampforwp-author-page-url'] ){
76
  if ( function_exists('coauthors_posts_links') ) {
77
+ echo '<span class="author-name">' .esc_attr($author_prefix) . esc_attr($author_link) . ' </span>';
78
  }
79
  else {
80
+ echo '<span class="author-name">' .esc_attr($author_prefix) . ' <a href="'. ampforwp_url_controller($author_link).'"> ' .esc_html( $author_name ).'</a></span>';
81
  }
82
  }
83
  else
84
+ echo '<span class="author-name">' . esc_attr($author_prefix) . esc_html( $author_name ) . '</span>';
85
 
86
  //to show date and time
87
  if ( $show_date || $show_time ) {
95
  echo '</span>';
96
  }
97
  if ( $author_description ) {
98
+ echo "<p>".esc_html($post_author->description)."</p>";
99
  } ?>
100
  </div>
101
  </div>
components/breadcrumb/breadcrumb.php CHANGED
@@ -22,10 +22,10 @@
22
  if ( !ampforwp_polylang_front_page() && !is_front_page() ) {
23
 
24
  // Build the breadcrums
25
- echo '<ul id="' . $breadcrums_id . '" class="' . $breadcrums_class . '">';
26
 
27
  // Home page
28
- echo '<li class="item-home"><a class="bread-link bread-home" href="' . esc_url(ampforwp_url_controller( get_home_url('', '/'), $home_non_amp )) . '" title="' . $home_title . '">' . $home_title . '</a></li>';
29
 
30
  if ( is_archive() && !is_tax() && !is_category() && !is_tag() && !is_author() ) {
31
 
@@ -38,7 +38,7 @@
38
  $author_url= get_author_posts_url($userdata->ID);
39
  $author_url = trailingslashit($author_url);
40
  // Display author name
41
- echo '<li class="item-current item-current-' . $userdata->user_nicename . '"><a class="bread-current bread-current-' . $userdata->user_nicename . '" title="' . $userdata->display_name . '" href="'. esc_url(ampforwp_url_controller( $author_url, $archive_non_amp )). '">' . 'Author: ' . $userdata->display_name . '</a></li>';
42
 
43
  } else if ( is_archive() && is_tax() && !is_category() && !is_tag() ) {
44
 
@@ -51,15 +51,15 @@
51
  $post_type_object = get_post_type_object($post_type);
52
  $post_type_archive = get_post_type_archive_link($post_type);
53
  if ( false != $post_type_archive){
54
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><a class="bread-cat bread-custom-post-type-' . $post_type . '" href="' .esc_url(ampforwp_url_controller( $post_type_archive, $archive_non_amp )) . '" title="' . $post_type_object->labels->name . '">' . $post_type_object->labels->name . '</a></li>';
55
  }
56
  else {
57
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><span class="bread-cat bread-custom-post-type-' . $post_type . '">' . $post_type_object->labels->name . '</span></li>';
58
  }
59
  }
60
 
61
  $custom_tax_name = get_queried_object()->name;
62
- echo '<li class="item-current item-archive"><strong class="bread-current bread-archive">' . $custom_tax_name . '</strong></li>';
63
  } else if ( is_single() ) {
64
 
65
  // If post is a custom post type
@@ -71,10 +71,10 @@
71
  $post_type_object = get_post_type_object($post_type);
72
  $post_type_archive = get_post_type_archive_link($post_type);
73
  if ( false != $post_type_archive){
74
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><a class="bread-cat bread-custom-post-type-' . $post_type . '" href="' .esc_url(ampforwp_url_controller( $post_type_archive, $archive_non_amp )) . '" title="' . $post_type_object->labels->name . '">' . $post_type_object->labels->name . '</a></li>';
75
  }
76
  else {
77
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><span class="bread-cat bread-custom-post-type-' . $post_type . '">' . $post_type_object->labels->name . '</span></li>';
78
  }
79
  }
80
  /*Breadcrumb with tags Start*/
@@ -87,7 +87,7 @@
87
  $tag_id = $post_obj->term_id;
88
  $tag_name = $post_obj->name;
89
  $tag_link = get_tag_link($tag_id);
90
- $tags_breadcrumbs .= '<li class="item-tag item-tag-' . $tag_id . ' item-tag-' . $tag_name . '"><a class="bread-tag bread-tag-' . $tag_id . ' bread-tag-' . $tag_name . '" href="' . esc_url(ampforwp_url_controller( $tag_link, $archive_non_amp )) . '" title="' . $tag_name . '">' . $tag_name . '</a></li>';
91
  }
92
  echo $tags_breadcrumbs;
93
  }
@@ -110,7 +110,7 @@
110
  foreach($cat_parents as $parents) {
111
  $cat_id = get_cat_ID( $parents);
112
  $cat_link = get_category_link($cat_id);
113
- $cat_display .= '<li class="item-cat item-cat-' . $cat_id . '"><a class="bread-cat bread-cat-' . $cat_id . ' bread-cat-' . $parents. '" href="'. esc_url(ampforwp_url_controller( $cat_link, $archive_non_amp )).'" title="' . $parents . '">' . $parents . '</a></li>';
114
  }
115
  }
116
  }
@@ -137,7 +137,7 @@
137
  // Else if post is in a custom taxonomy
138
  } else if(!empty($cat_id)) {
139
 
140
- echo '<li class="item-cat item-cat-' . $cat_id . ' item-cat-' . $cat_nicename . '"><a class="bread-cat bread-cat-' . $cat_id . ' bread-cat-' . $cat_nicename . '" href="' . esc_url(ampforwp_url_controller( $cat_link, $archive_non_amp )) . '" title="' . $cat_name . '">' . $cat_name . '</a></li>';
141
  }
142
 
143
  } else if ( is_category() ) {
@@ -158,7 +158,7 @@
158
  // Parent page loop
159
  if ( !isset( $parents ) ) $parents = null;
160
  foreach ( $anc as $ancestor ) {
161
- $parents .= '<li class="item-parent item-parent-' . $ancestor . '"><a class="bread-parent bread-parent-' . $ancestor . '" href="' . esc_url(ampforwp_url_controller( get_permalink( $ancestor ), $archive_non_amp )) . '" title="' . get_the_title($ancestor) . '">' . get_the_title($ancestor) . '</a></li>';
162
  }
163
 
164
  // Display parent pages
@@ -182,51 +182,51 @@
182
  $get_term_name = $terms[0]->name;
183
 
184
  // Display the tag name
185
- echo '<li class="item-current item-tag-' . $get_term_id . ' item-tag-' . $get_term_slug . '"><strong class="bread-current bread-tag-' . $get_term_id . ' bread-tag-' . $get_term_slug . '">' . $get_term_name . '</strong></li>';
186
  } elseif ( is_day() ) {
187
 
188
  // Day archive
189
 
190
  // Year link
191
- echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . '</a></li>';
192
 
193
  // Month link
194
- echo '<li class="item-month item-month-' . get_the_time('m') . '"><a class="bread-month bread-month-' . get_the_time('m') . '" href="' . get_month_link( get_the_time('Y'), get_the_time('m') ) . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </a></li>';
195
 
196
 
197
  // Day display
198
- echo '<li class="item-current item-' . get_the_time('j') . '"><strong class="bread-current bread-' . get_the_time('j') . '"> ' . get_the_time('jS') . ' ' . get_the_time('M') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </strong></li>';
199
 
200
  } else if ( is_month() ) {
201
 
202
  // Month Archive
203
 
204
  // Year link
205
- echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </a></li>';
206
 
207
  // Month display
208
- echo '<li class="item-month item-month-' . get_the_time('m') . '"><strong class="bread-month bread-month-' . get_the_time('m') . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </strong></li>';
209
 
210
  } else if ( is_year() ) {
211
 
212
  // Display year archive
213
- echo '<li class="item-current item-current-' . get_the_time('Y') . '"><strong class="bread-current bread-current-' . get_the_time('Y') . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives'). ' </strong></li>';
214
 
215
  } else if ( get_query_var('paged') ) {
216
 
217
  // Paginated archives
218
- echo '<li class="item-current item-current-' . get_query_var('paged') . '"><strong class="bread-current bread-current-' . get_query_var('paged') . '" title="Page ' . get_query_var('paged') . '">'. ampforwp_translation($redux_builder_amp['amp-translator-page-text'], 'Page') . ' ' . get_query_var('paged') . '</strong></li>';
219
 
220
  } else if ( is_search() ) {
221
 
222
  // Search results page
223
- echo '<li class="item-current item-current-' . get_search_query() . '"><strong class="bread-current bread-current-' . get_search_query() . '" title="Search results for: ' . get_search_query() . '">
224
- ' . ampforwp_translation($redux_builder_amp['amp-translator-breadcrumbs-search-text'], 'Search results for') . ': ' . get_search_query() . '</strong></li>';
225
 
226
  } elseif ( is_404() ) {
227
 
228
  // 404 page
229
- echo '<li>' . ampforwp_translation($redux_builder_amp['amp-translator-error-404-text'], 'Error 404') . '</li>';
230
  }
231
  echo '</ul>';
232
 
22
  if ( !ampforwp_polylang_front_page() && !is_front_page() ) {
23
 
24
  // Build the breadcrums
25
+ echo '<ul id="' . esc_attr($breadcrums_id) . '" class="' . esc_attr($breadcrums_class) . '">';
26
 
27
  // Home page
28
+ echo '<li class="item-home"><a class="bread-link bread-home" href="' . ampforwp_url_controller( get_home_url('', '/'), $home_non_amp ) . '" title="' . esc_attr($home_title) . '">' . esc_html($home_title) . '</a></li>';
29
 
30
  if ( is_archive() && !is_tax() && !is_category() && !is_tag() && !is_author() ) {
31
 
38
  $author_url= get_author_posts_url($userdata->ID);
39
  $author_url = trailingslashit($author_url);
40
  // Display author name
41
+ echo '<li class="item-current item-current-' . esc_attr($userdata->user_nicename) . '"><a class="bread-current bread-current-' . esc_attr($userdata->user_nicename) . '" title="' . esc_attr($userdata->display_name) . '" href="'. ampforwp_url_controller( $author_url, $archive_non_amp ). '">' . 'Author: ' . esc_html($userdata->display_name) . '</a></li>';
42
 
43
  } else if ( is_archive() && is_tax() && !is_category() && !is_tag() ) {
44
 
51
  $post_type_object = get_post_type_object($post_type);
52
  $post_type_archive = get_post_type_archive_link($post_type);
53
  if ( false != $post_type_archive){
54
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><a class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '" href="' .ampforwp_url_controller( $post_type_archive, $archive_non_amp ) . '" title="' . esc_attr($post_type_object->labels->name) . '">' . esc_html($post_type_object->labels->name) . '</a></li>';
55
  }
56
  else {
57
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><span class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '">' . esc_html($post_type_object->labels->name) . '</span></li>';
58
  }
59
  }
60
 
61
  $custom_tax_name = get_queried_object()->name;
62
+ echo '<li class="item-current item-archive"><strong class="bread-current bread-archive">' . esc_html($custom_tax_name) . '</strong></li>';
63
  } else if ( is_single() ) {
64
 
65
  // If post is a custom post type
71
  $post_type_object = get_post_type_object($post_type);
72
  $post_type_archive = get_post_type_archive_link($post_type);
73
  if ( false != $post_type_archive){
74
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><a class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '" href="' .ampforwp_url_controller( $post_type_archive, $archive_non_amp ) . '" title="' . esc_attr($post_type_object->labels->name) . '">' . esc_html($post_type_object->labels->name) . '</a></li>';
75
  }
76
  else {
77
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><span class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '">' . esc_html($post_type_object->labels->name) . '</span></li>';
78
  }
79
  }
80
  /*Breadcrumb with tags Start*/
87
  $tag_id = $post_obj->term_id;
88
  $tag_name = $post_obj->name;
89
  $tag_link = get_tag_link($tag_id);
90
+ $tags_breadcrumbs .= '<li class="item-tag item-tag-' . esc_attr($tag_id) . ' item-tag-' . esc_attr($tag_name) . '"><a class="bread-tag bread-tag-' . esc_attr($tag_id) . ' bread-tag-' . esc_attr($tag_name) . '" href="' . ampforwp_url_controller( $tag_link, $archive_non_amp ) . '" title="' . esc_attr($tag_name) . '">' . esc_html($tag_name) . '</a></li>';
91
  }
92
  echo $tags_breadcrumbs;
93
  }
110
  foreach($cat_parents as $parents) {
111
  $cat_id = get_cat_ID( $parents);
112
  $cat_link = get_category_link($cat_id);
113
+ $cat_display .= '<li class="item-cat item-cat-' . esc_attr($cat_id) . '"><a class="bread-cat bread-cat-' . esc_attr($cat_id) . ' bread-cat-' . esc_attr($parents). '" href="'. ampforwp_url_controller( $cat_link, $archive_non_amp ).'" title="' . esc_attr($parents) . '">' . esc_html($parents) . '</a></li>';
114
  }
115
  }
116
  }
137
  // Else if post is in a custom taxonomy
138
  } else if(!empty($cat_id)) {
139
 
140
+ echo '<li class="item-cat item-cat-' . esc_attr($cat_id) . ' item-cat-' . esc_attr($cat_nicename) . '"><a class="bread-cat bread-cat-' . esc_attr($cat_id) . ' bread-cat-' . esc_attr($cat_nicename) . '" href="' . ampforwp_url_controller( $cat_link, $archive_non_amp ) . '" title="' . esc_attr($cat_name) . '">' . esc_html($cat_name) . '</a></li>';
141
  }
142
 
143
  } else if ( is_category() ) {
158
  // Parent page loop
159
  if ( !isset( $parents ) ) $parents = null;
160
  foreach ( $anc as $ancestor ) {
161
+ $parents .= '<li class="item-parent item-parent-' . esc_attr($ancestor) . '"><a class="bread-parent bread-parent-' . esc_attr($ancestor) . '" href="' . ampforwp_url_controller( get_permalink( $ancestor ), $archive_non_amp ) . '" title="' . esc_attr(get_the_title($ancestor)) . '">' .esc_html( get_the_title($ancestor)) . '</a></li>';
162
  }
163
 
164
  // Display parent pages
182
  $get_term_name = $terms[0]->name;
183
 
184
  // Display the tag name
185
+ echo '<li class="item-current item-tag-' . esc_attr($get_term_id) . ' item-tag-' . esc_attr($get_term_slug) . '"><strong class="bread-current bread-tag-' . esc_attr($get_term_id) . ' bread-tag-' . esc_attr($get_term_slug) . '">' . esc_html($get_term_name) . '</strong></li>';
186
  } elseif ( is_day() ) {
187
 
188
  // Day archive
189
 
190
  // Year link
191
+ echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . '</a></li>';
192
 
193
  // Month link
194
+ echo '<li class="item-month item-month-' . get_the_time('m') . '"><a class="bread-month bread-month-' . get_the_time('m') . '" href="' . get_month_link( get_the_time('Y'), get_the_time('m') ) . '" title="' . get_the_time('M') . '">' . get_the_time('M') . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </a></li>';
195
 
196
 
197
  // Day display
198
+ echo '<li class="item-current item-' . get_the_time('j') . '"><strong class="bread-current bread-' . get_the_time('j') . '"> ' . get_the_time('jS') . ' ' . get_the_time('M') . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </strong></li>';
199
 
200
  } else if ( is_month() ) {
201
 
202
  // Month Archive
203
 
204
  // Year link
205
+ echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </a></li>';
206
 
207
  // Month display
208
+ echo '<li class="item-month item-month-' . get_the_time('m') . '"><strong class="bread-month bread-month-' . get_the_time('m') . '" title="' . get_the_time('M') . '">' . get_the_time('M') . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </strong></li>';
209
 
210
  } else if ( is_year() ) {
211
 
212
  // Display year archive
213
+ echo '<li class="item-current item-current-' . get_the_time('Y') . '"><strong class="bread-current bread-current-' . get_the_time('Y') . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')). ' </strong></li>';
214
 
215
  } else if ( get_query_var('paged') ) {
216
 
217
  // Paginated archives
218
+ echo '<li class="item-current item-current-' . esc_attr(get_query_var('paged')) . '"><strong class="bread-current bread-current-' . esc_attr(get_query_var('paged')) . '" title="Page ' . esc_attr(get_query_var('paged')) . '">'. esc_html(ampforwp_translation($redux_builder_amp['amp-translator-page-text'], 'Page')) . ' ' . esc_html(get_query_var('paged')) . '</strong></li>';
219
 
220
  } else if ( is_search() ) {
221
 
222
  // Search results page
223
+ echo '<li class="item-current item-current-' . esc_attr(get_search_query()) . '"><strong class="bread-current bread-current-' . esc_attr(get_search_query()) . '" title="Search results for: ' . esc_attr(get_search_query()) . '">
224
+ ' . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-breadcrumbs-search-text'], 'Search results for')) . ': ' . esc_html(get_search_query()) . '</strong></li>';
225
 
226
  } elseif ( is_404() ) {
227
 
228
  // 404 page
229
+ echo '<li>' . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-error-404-text'], 'Error 404')) . '</li>';
230
  }
231
  echo '</ul>';
232
 
components/call-now/call-now.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  add_action('amp_call_button','amp_call_button_html_output');
3
  function amp_call_button_html_output(){
4
  global $redux_builder_amp;
1
  <?php
2
+ /*TODO: Check the usage of call-now component, or we are using #55 from features.php #2652*/
3
  add_action('amp_call_button','amp_call_button_html_output');
4
  function amp_call_button_html_output(){
5
  global $redux_builder_amp;
components/categories-tags/categories-tags.php CHANGED
@@ -9,12 +9,12 @@ function ampforwp_framework_get_categories_list(){
9
  $ampforwp_categories = get_the_terms( $post->ID, 'category' );
10
  if ( $ampforwp_categories ) : ?>
11
  <div class="amp-category">
12
- <span><?php echo ampforwp_translation($redux_builder_amp['amp-translator-categories-text'], 'Categories' ); ?></span>
13
  <?php foreach ($ampforwp_categories as $cat ) {
14
  if( true == $redux_builder_amp['ampforwp-archive-support'] && true == $redux_builder_amp['ampforwp-cats-tags-links-single']) {
15
- echo ('<span class="amp-cat amp-cat-'.$cat->term_id.'"><a href="'. ampforwp_url_controller( get_category_link( $cat->term_id ) ) .'" > '. $cat->name .'</a></span>');//#934
16
  } else {
17
- echo '<span class="amp-cat">'. $cat->name .'</span>';
18
  }
19
  } ?>
20
  </div>
@@ -25,21 +25,14 @@ function ampforwp_framework_get_tags_list(){
25
  $ampforwp_tags = get_the_terms( $post->ID, 'post_tag' );
26
  if ( $ampforwp_tags && ! is_wp_error( $ampforwp_tags ) ) :?>
27
  <div class="amp-tags">
28
- <?php /* if($redux_builder_amp['amp-rtl-select-option']==0) {
29
- global $redux_builder_amp; printf( ampforwp_translation($redux_builder_amp['amp-translator-tags-text'] .' ', 'accelerated-mobile-pages' ));
30
- }*/
31
- ?>
32
- <span><?php echo ampforwp_translation($redux_builder_amp['amp-translator-tags-text'], 'Tags' ); ?></span>
33
  <?php foreach ( $ampforwp_tags as $tag ) {
34
  if( true == $redux_builder_amp['ampforwp-archive-support'] && true == $redux_builder_amp['ampforwp-cats-tags-links-single'] ) {
35
- echo ('<span class="amp-tag amp-tag-'.$tag->term_id.'"><a href="'. ampforwp_url_controller( get_tag_link( $tag->term_id ) ).'" >'.$tag->name .'</a></span>');//#934
36
  } else {
37
- echo ('<span class="amp-tag">'.$tag->name.'</span>');
38
  }
39
- }
40
- /* if($redux_builder_amp['amp-rtl-select-option']) {
41
- global $redux_builder_amp; printf( ampforwp_translation($redux_builder_amp['amp-translator-tags-text'] .' ', 'accelerated-mobile-pages' ));
42
- }*/ ?>
43
  </div>
44
  <?php endif;
45
  }
9
  $ampforwp_categories = get_the_terms( $post->ID, 'category' );
10
  if ( $ampforwp_categories ) : ?>
11
  <div class="amp-category">
12
+ <span><?php echo esc_html(ampforwp_translation($redux_builder_amp['amp-translator-categories-text'], 'Categories' )); ?></span>
13
  <?php foreach ($ampforwp_categories as $cat ) {
14
  if( true == $redux_builder_amp['ampforwp-archive-support'] && true == $redux_builder_amp['ampforwp-cats-tags-links-single']) {
15
+ echo ('<span class="amp-cat amp-cat-'.esc_attr($cat->term_id).'"><a href="'. ampforwp_url_controller( get_category_link( $cat->term_id ) ) .'" > '. esc_html($cat->name) .'</a></span>');//#934
16
  } else {
17
+ echo '<span class="amp-cat">'. esc_html($cat->name) .'</span>';
18
  }
19
  } ?>
20
  </div>
25
  $ampforwp_tags = get_the_terms( $post->ID, 'post_tag' );
26
  if ( $ampforwp_tags && ! is_wp_error( $ampforwp_tags ) ) :?>
27
  <div class="amp-tags">
28
+ <span><?php echo esc_html(ampforwp_translation($redux_builder_amp['amp-translator-tags-text'], 'Tags' )); ?></span>
 
 
 
 
29
  <?php foreach ( $ampforwp_tags as $tag ) {
30
  if( true == $redux_builder_amp['ampforwp-archive-support'] && true == $redux_builder_amp['ampforwp-cats-tags-links-single'] ) {
31
+ echo ('<span class="amp-tag amp-tag-'.esc_attr($tag->term_id).'"><a href="'. ampforwp_url_controller( get_tag_link( $tag->term_id ) ).'" >'.esc_html($tag->name) .'</a></span>');//#934
32
  } else {
33
+ echo ('<span class="amp-tag">'.esc_html($tag->name).'</span>');
34
  }
35
+ }?>
 
 
 
36
  </div>
37
  <?php endif;
38
  }
components/comments/comments.php CHANGED
@@ -32,7 +32,7 @@ function ampforwp_framework_get_comments(){
32
 
33
  if ( $comments ) { ?>
34
  <div id="comments" class="amp-comments-wrapper">
35
- <h3><span><?php echo ampforwp_translation($redux_builder_amp['amp-translator-view-comments-text'], 'View Comments' )?></span></h3>
36
  <ul><?php
37
  // Display the list of comments
38
  function ampforwp_custom_translated_comment($comment, $args, $depth){
@@ -51,7 +51,7 @@ function ampforwp_framework_get_comments(){
51
  <?php } ?>
52
  <div class="comment-author vcard">
53
  <?php
54
- printf(__('<b class="fn">%s</b> <span class="says">'.ampforwp_translation($redux_builder_amp['amp-translator-says-text'],'says').':</span>'), get_comment_author_link()) ?>
55
  </div>
56
  <div class="comment-metadata">
57
  <a href="<?php echo htmlspecialchars( trailingslashit( get_comment_link( $comment->comment_ID ) ) ) ?>">
@@ -106,9 +106,9 @@ function ampforwp_framework_get_comments(){
106
  if ( ! defined( 'AMP_COMMENTS_VERSION' ) ) { ?>
107
  <div class="amp-comment-button">
108
  <?php if ( comments_open() ) { ?>
109
- <a href="<?php echo ampforwp_comment_button_url(); ?>" rel="nofollow"><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-leave-a-comment-text'], 'Leave a Comment' ); ?></a> <?php
110
  } else {
111
- echo "<p class='nocomments'>". ampforwp_translation( $redux_builder_amp['amp-translator-comments-closed'], 'Comments are closed' ) ." </p>";
112
  }?>
113
  </div> <?php
114
  }?>
@@ -131,12 +131,12 @@ global $redux_builder_amp;
131
  else {
132
  $facebook_comments_markup = '<section class="amp-facebook-comments">';
133
  $facebook_comments_markup .= '<amp-facebook-comments width=486 height=357
134
- layout="responsive" '.$locale.' data-numposts=';
135
- $facebook_comments_markup .= '"'. $redux_builder_amp['ampforwp-number-of-fb-no-of-comments']. '"';
136
  if(ampforwp_get_data_consent()){
137
  $facebook_comments_markup .= ' data-block-on-consent ';
138
  }
139
- $facebook_comments_markup .= 'data-href="' . get_permalink() . '"';
140
  $facebook_comments_markup .= '></amp-facebook-comments></section>';
141
  }
142
  return $facebook_comments_markup;
@@ -171,14 +171,14 @@ function ampforwp_framework_get_disqus_comments(){
171
  ?>
172
  <section class="amp-disqus-comments">
173
  <amp-iframe
174
- height=<?php echo $height ?>
175
- width=<?php echo $width ?>
176
- layout="<?php echo $layout ?>"
177
  sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts"
178
  frameborder="0"
179
  <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?>
180
- src="<?php echo $disqus_url ?>" >
181
- <div overflow tabindex="0" role="button" aria-label="Read more"><?php echo __('Disqus Comments Loading...','accelerated-mobile-pages') ?></div>
182
  </amp-iframe>
183
  </section>
184
  <?php
@@ -197,7 +197,7 @@ function ampforwp_framework_get_vuukle_comments(){
197
  $srcUrl = add_query_arg('id' , $post->ID, $srcUrl);
198
  $srcUrl = add_query_arg('apiKey' , $apiKey, $srcUrl);
199
  $srcUrl = add_query_arg('title' , $post->post_title, $srcUrl);
200
- $vuukle_html = '<amp-iframe width="600" height="350" layout="responsive" sandbox="allow-scripts allow-same-origin allow-modals allow-popups allow-forms" resizable frameborder="0" src="'.$srcUrl.'">
201
 
202
  <div overflow tabindex="0" role="button" aria-label="Show comments">Show comments</div>';
203
  echo $vuukle_html;
@@ -213,7 +213,7 @@ function ampforwp_framework_get_spotim_comments(){
213
  $srcUrl = add_query_arg('spotId' ,get_permalink(), $srcUrl);
214
  $srcUrl = add_query_arg('postId' , $post->ID, $srcUrl);
215
  $spotim_html = '<amp-iframe width="375" height="815" resizable sandbox="allow-scripts allow-same-origin allow-popups allow-top-navigation" layout="responsive"
216
- frameborder="0" src="'.$srcUrl.'">
217
  <amp-img placeholder height="815" layout="fill" src="//amp.spot.im/loader.png"></amp-img>
218
  <div overflow class="spot-im-amp-overflow" tabindex="0" role="button" aria-label="Read more">Load more...</div>
219
  </amp-iframe>';
32
 
33
  if ( $comments ) { ?>
34
  <div id="comments" class="amp-comments-wrapper">
35
+ <h3><span><?php echo esc_html(ampforwp_translation($redux_builder_amp['amp-translator-view-comments-text'], 'View Comments' ));?></span></h3>
36
  <ul><?php
37
  // Display the list of comments
38
  function ampforwp_custom_translated_comment($comment, $args, $depth){
51
  <?php } ?>
52
  <div class="comment-author vcard">
53
  <?php
54
+ printf(__('<b class="fn">%s</b> <span class="says">'.esc_html( ampforwp_translation($redux_builder_amp['amp-translator-says-text'],'says')) .':</span>'), get_comment_author_link()) ?>
55
  </div>
56
  <div class="comment-metadata">
57
  <a href="<?php echo htmlspecialchars( trailingslashit( get_comment_link( $comment->comment_ID ) ) ) ?>">
106
  if ( ! defined( 'AMP_COMMENTS_VERSION' ) ) { ?>
107
  <div class="amp-comment-button">
108
  <?php if ( comments_open() ) { ?>
109
+ <a href="<?php echo ampforwp_comment_button_url(); ?>" rel="nofollow"><?php echo esc_html(ampforwp_translation( $redux_builder_amp['amp-translator-leave-a-comment-text'], 'Leave a Comment' ) ); ?></a> <?php
110
  } else {
111
+ echo "<p class='nocomments'>". esc_html( ampforwp_translation( $redux_builder_amp['amp-translator-comments-closed'], 'Comments are closed' ) )." </p>";
112
  }?>
113
  </div> <?php
114
  }?>
131
  else {
132
  $facebook_comments_markup = '<section class="amp-facebook-comments">';
133
  $facebook_comments_markup .= '<amp-facebook-comments width=486 height=357
134
+ layout="responsive" '. esc_attr($locale) .' data-numposts=';
135
+ $facebook_comments_markup .= '"'. esc_attr($redux_builder_amp['ampforwp-number-of-fb-no-of-comments']). '"';
136
  if(ampforwp_get_data_consent()){
137
  $facebook_comments_markup .= ' data-block-on-consent ';
138
  }
139
+ $facebook_comments_markup .= 'data-href="' . esc_html(get_permalink()) . '"';
140
  $facebook_comments_markup .= '></amp-facebook-comments></section>';
141
  }
142
  return $facebook_comments_markup;
171
  ?>
172
  <section class="amp-disqus-comments">
173
  <amp-iframe
174
+ height=<?php echo esc_attr($height); ?>
175
+ width=<?php echo esc_attr($width); ?>
176
+ layout="<?php echo esc_attr($layout); ?>"
177
  sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts"
178
  frameborder="0"
179
  <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?>
180
+ src="<?php echo esc_url($disqus_url); ?>" >
181
+ <div overflow tabindex="0" role="button" aria-label="Read more"><?php echo esc_html__('Disqus Comments Loading...','accelerated-mobile-pages') ?></div>
182
  </amp-iframe>
183
  </section>
184
  <?php
197
  $srcUrl = add_query_arg('id' , $post->ID, $srcUrl);
198
  $srcUrl = add_query_arg('apiKey' , $apiKey, $srcUrl);
199
  $srcUrl = add_query_arg('title' , $post->post_title, $srcUrl);
200
+ $vuukle_html = '<amp-iframe width="600" height="350" layout="responsive" sandbox="allow-scripts allow-same-origin allow-modals allow-popups allow-forms" resizable frameborder="0" src="'.esc_url($srcUrl).'">
201
 
202
  <div overflow tabindex="0" role="button" aria-label="Show comments">Show comments</div>';
203
  echo $vuukle_html;
213
  $srcUrl = add_query_arg('spotId' ,get_permalink(), $srcUrl);
214
  $srcUrl = add_query_arg('postId' , $post->ID, $srcUrl);
215
  $spotim_html = '<amp-iframe width="375" height="815" resizable sandbox="allow-scripts allow-same-origin allow-popups allow-top-navigation" layout="responsive"
216
+ frameborder="0" src="'.esc_url($srcUrl).'">
217
  <amp-img placeholder height="815" layout="fill" src="//amp.spot.im/loader.png"></amp-img>
218
  <div overflow class="spot-im-amp-overflow" tabindex="0" role="button" aria-label="Read more">Load more...</div>
219
  </amp-iframe>';
components/components-core.php CHANGED
@@ -3,10 +3,10 @@ global $redux_builder_amp;
3
  $loadComponent = array();
4
  $scriptComponent = array();
5
  $supportComponent = array('AMP-search','AMP-menu','AMP-logo','AMP-social-icons','AMP-sidebar','AMP-featured-image','AMP-author-box','AMP-loop','AMP-categories-tags','AMP-comments','AMP-post-navigation','AMP-related-posts','AMP-post-pagination','AMP-call-now', 'AMP-breadcrumb','AMP-gdpr');
6
- //$removeScriptComponent = array('amp-carousel');'
7
  add_filter( 'amp_post_template_data', 'ampforwp_framework_add_and_form_scripts',20);
8
  function ampforwp_framework_add_and_form_scripts($data) {
9
- global $scriptComponent, $loadComponent; //$removeScriptComponent;
10
 
11
  if(count($scriptComponent)>0){
12
  foreach ($scriptComponent as $key => $value) {
@@ -15,13 +15,6 @@ function ampforwp_framework_add_and_form_scripts($data) {
15
  }
16
  }
17
  }
18
- /*if(count($removeScriptComponent)>0){
19
- foreach ($removeScriptComponent as $key => $value) {
20
- if ( empty( $data['amp_component_scripts'][$key] ) ) {
21
- unset($data['amp_component_scripts']['$key']);
22
- }
23
- }
24
- }*/
25
  return $data;
26
  }
27
 
@@ -32,14 +25,14 @@ function add_amp_theme_support($componentName){
32
  if($supportComponent){
33
  if(in_array($componentName, $supportComponent)){
34
  $loadComponent[$componentName] = true;
35
- loadComponents($componentName);
36
  return true;
37
  }
38
  }
39
  return false;
40
  }
41
  //Include the Component file
42
- function loadComponents($componentName){
43
  global $wpdb;
44
  if(empty($componentName)) return '';
45
  $componentName = str_replace("AMP-", "", $componentName);
@@ -72,12 +65,13 @@ function add_amp_icon($args=array()){
72
  function amp_icon_css(){
73
  global $amp_icons_css, $redux_builder_amp;
74
  foreach ($amp_icons_css as $key => $value) {
 
75
  echo $value;
76
  }
77
 
78
  // Add @font-face for Design-1,2,3
79
  if ( 1 == $redux_builder_amp['amp-design-selector'] || 2 == $redux_builder_amp['amp-design-selector'] || 3 == $redux_builder_amp['amp-design-selector'] ) { ?>
80
- @font-face {font-family: 'icomoon';font-style: normal;font-weight: normal;src: local('icomoon'), local('icomoon'), url('<?php echo plugin_dir_url(__FILE__) ?>icomoon/icomoon.ttf');}
81
  [class^="icon-"], [class*=" icon-"] {font-family: 'icomoon';speak: none;font-style: normal;font-weight: normal;font-variant: normal;text-transform: none;line-height: 1;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;}
82
  <?php }
83
  }
@@ -117,14 +111,13 @@ function amp_title(){
117
  else
118
  $ID = $post->ID;
119
  if( $ID!=null ){
120
- do_action('ampforwp_above_the_title'); ?>
121
- <h1 class="amp-post-title"> <?php
122
- $ampforwp_title = get_the_title($ID);
123
- $ampforwp_title = apply_filters('ampforwp_filter_single_title', $ampforwp_title);
124
- echo wp_kses_data( $ampforwp_title ); ?>
125
- </h1>
126
- <?php do_action('ampforwp_below_the_title'); ?>
127
- <?php
128
  }
129
  }
130
 
@@ -139,15 +132,16 @@ function amp_excerpt( $no_of_words=15 ) {
139
  else
140
  $post_id = $post->ID;
141
  if ( $post_id != null && true == $redux_builder_amp['enable-excerpt-single'] ) { ?>
142
- <p><?php
143
- if ( has_excerpt() ) {
144
- $content = get_the_excerpt();
145
- } else {
146
- $content = get_the_content();
147
- }
148
- echo wp_trim_words( strip_shortcodes( $content ) , $no_of_words );
149
- ?></p>
150
- <?php
 
151
  }
152
  }
153
 
@@ -230,7 +224,7 @@ function amp_comments( ){
230
  function amp_post_navigation( ){
231
  global $loadComponent;
232
  if(isset($loadComponent['AMP-post-navigation']) && $loadComponent['AMP-post-navigation']==true){
233
- echo ampforwp_framework_get_post_navigation( );
234
  }
235
  }
236
 
@@ -298,30 +292,30 @@ function amp_header_core(){
298
 
299
  add_action('amp_post_template_head','ampforwp_sanitize_archive_desc');
300
  function ampforwp_sanitize_archive_desc(){
301
- $description = get_the_archive_description();
302
- if ($description) {
303
- $sanitizer = new AMPFORWP_Content( $description, array(),
304
- apply_filters( 'ampforwp_content_sanitizers',
305
- array(
306
- 'AMP_Style_Sanitizer' => array(),
307
- 'AMP_Blacklist_Sanitizer' => array(),
308
- 'AMP_Img_Sanitizer' => array(),
309
- 'AMP_Video_Sanitizer' => array(),
310
- 'AMP_Audio_Sanitizer' => array(),
311
- 'AMP_Iframe_Sanitizer' => array(
312
- 'add_placeholder' => true,
313
- )
314
- ) ) );
315
-
316
- $amp_component_scripts = $sanitizer->amp_scripts;
317
-
318
- if ( $sanitizer && $amp_component_scripts) {
319
- foreach ($amp_component_scripts as $ampforwp_service => $ampforwp_js_file) { ?>
320
- <script custom-element="<?php echo esc_attr($ampforwp_service); ?>" src="<?php echo esc_url($ampforwp_js_file); ?>" async></script> <?php
321
- }
322
- }
 
323
  }
324
- }
325
  // Homepage
326
  if ( is_home() ) {
327
 
@@ -347,7 +341,7 @@ function amp_header_core(){
347
  $bodyClass .= ' rtl ';
348
  }
349
  ?><!doctype html>
350
- <html <?php echo ampforwp_amp_nonamp_convert('amp '); ?><?php echo AMP_HTML_Utils::build_attributes_string( $thisTemplate->get( 'html_tag_attributes' ) ); ?>>
351
  <head>
352
  <meta charset="utf-8">
353
 
@@ -422,9 +416,9 @@ function amp_footer_core(){
422
  }
423
 
424
  function amp_non_amp_link(){
425
- $allowed_html = ampforwp_wp_kses_allowed_html();
426
  global $redux_builder_amp;
427
- echo '<span>' . wp_kses($redux_builder_amp['amp-translator-footer-text'],$allowed_html) . '</span>' ;
428
  if($redux_builder_amp['amp-footer-link-non-amp-page']=='1') { ampforwp_view_nonamp(); }
429
  }
430
 
@@ -432,7 +426,7 @@ function amp_non_amp_link(){
432
  function amp_back_to_top_link(){
433
  global $redux_builder_amp;
434
  if( '1' == $redux_builder_amp['ampforwp-footer-top'] ) { ?>
435
- <a title="back to top" on="tap:backtotop.scrollTo(duration=500)" class="btt" ><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-top-text'], 'Top'); ?></a>
436
  <?php }
437
  }
438
 
@@ -446,22 +440,20 @@ function amp_loop_template(){
446
 
447
  // The Content
448
  function amp_content($post_id= ''){
449
- global $redux_builder_amp, $post;
450
-
451
 
452
- if ( empty( $post_id )) {
453
-
454
- $post_id = get_queried_object_id();
455
- if ( ampforwp_is_front_page() ) {
456
- $post_id = ampforwp_get_frontpage_id();
457
- }
458
- elseif ( ampforwp_polylang_front_page() ) {
459
- $post_id = pll_get_post(get_option('page_on_front'));
460
  }
461
- }
462
 
463
- $thisTemplate = new AMP_Post_Template($post_id); ?>
464
- <?php do_action('ampforwp_before_post_content',$thisTemplate);
465
  $amp_custom_content_enable = get_post_meta( $thisTemplate->get( 'post_id' ) , 'ampforwp_custom_content_editor_checkbox', true);
466
  // Normal Content
467
  if ( ! $amp_custom_content_enable ) {
@@ -501,9 +493,9 @@ $thisTemplate = new AMP_Post_Template($post_id); ?>
501
  }
502
  }
503
  $ampforwp_the_content = apply_filters('ampforwp_modify_the_content',$ampforwp_the_content);
504
- echo $ampforwp_the_content;
505
- do_action('ampforwp_after_post_content',$thisTemplate); ?>
506
- <?php }
507
 
508
  function amp_date( $args=array() ) {
509
 
@@ -512,7 +504,7 @@ function amp_date( $args=array() ) {
512
  $args = array('format' => 'traditional');
513
  }
514
  if ( (isset($args['format']) && $args['format'] == 'traditional') || 'time' == $args ) {
515
- $post_date = esc_html( get_the_date() ) . ' '.esc_html( get_the_time());
516
  } else {
517
  $post_date = human_time_diff(
518
  get_the_time('U', get_the_ID() ),
@@ -524,10 +516,10 @@ function amp_date( $args=array() ) {
524
  $post_date = date($args['custom_format'],get_the_time('U', get_the_ID() ));
525
  }
526
  if ( 'date' == $args || 'time' == $args ) {
527
- echo $post_date .' ';
528
  }
529
  else
530
- echo '<div class="loop-date">'.$post_date.'</div>';
531
  }
532
 
533
  //Load font Compoment
@@ -586,18 +578,18 @@ function amp_author_meta( $args ) {
586
  $post_author = get_userdata($post->post_author);
587
  $author_link = get_author_posts_url($post_author->ID);
588
  if ( $author_name ) {
589
- echo ' <a href="'. esc_url(ampforwp_url_controller($author_link)).'"> ' .esc_html( $post_author->display_name ).'</a>';
590
  }
591
  if ( $avatar && true == ampforwp_gravatar_checker($post_author->user_email) ) {
592
  $author_avatar_url = get_avatar_url( $post_author->ID, array( 'size' => $avatar_size ) );
593
  ?>
594
- <amp-img <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> src="<?php echo esc_url($author_avatar_url); ?>" width="<?php echo $avatar_size; ?>" height="<?php echo $avatar_size; ?>" layout="fixed"></amp-img>
595
  <?php }
596
  elseif ( $avatar && false == ampforwp_gravatar_checker($post_author->user_email ) ) {
597
  $avatar_img = get_avatar( $post_author->user_email, $avatar_size );
598
  $amp_html_sanitizer = new AMPFORWP_Content( $avatar_img, array(), apply_filters( 'ampforwp_content_sanitizers', array( 'AMP_Img_Sanitizer' => array() ) ) );
599
  $amp_html = $amp_html_sanitizer->get_amp_content();
600
- echo $amp_html;
601
  }
602
 
603
  }
3
  $loadComponent = array();
4
  $scriptComponent = array();
5
  $supportComponent = array('AMP-search','AMP-menu','AMP-logo','AMP-social-icons','AMP-sidebar','AMP-featured-image','AMP-author-box','AMP-loop','AMP-categories-tags','AMP-comments','AMP-post-navigation','AMP-related-posts','AMP-post-pagination','AMP-call-now', 'AMP-breadcrumb','AMP-gdpr');
6
+
7
  add_filter( 'amp_post_template_data', 'ampforwp_framework_add_and_form_scripts',20);
8
  function ampforwp_framework_add_and_form_scripts($data) {
9
+ global $scriptComponent, $loadComponent;
10
 
11
  if(count($scriptComponent)>0){
12
  foreach ($scriptComponent as $key => $value) {
15
  }
16
  }
17
  }
 
 
 
 
 
 
 
18
  return $data;
19
  }
20
 
25
  if($supportComponent){
26
  if(in_array($componentName, $supportComponent)){
27
  $loadComponent[$componentName] = true;
28
+ ampforwp_loadComponents($componentName);
29
  return true;
30
  }
31
  }
32
  return false;
33
  }
34
  //Include the Component file
35
+ function ampforwp_loadComponents($componentName){
36
  global $wpdb;
37
  if(empty($componentName)) return '';
38
  $componentName = str_replace("AMP-", "", $componentName);
65
  function amp_icon_css(){
66
  global $amp_icons_css, $redux_builder_amp;
67
  foreach ($amp_icons_css as $key => $value) {
68
+ // TODO: https://github.com/ahmedkaludi/accelerated-mobile-pages/issues/2651
69
  echo $value;
70
  }
71
 
72
  // Add @font-face for Design-1,2,3
73
  if ( 1 == $redux_builder_amp['amp-design-selector'] || 2 == $redux_builder_amp['amp-design-selector'] || 3 == $redux_builder_amp['amp-design-selector'] ) { ?>
74
+ @font-face {font-family: 'icomoon';font-style: normal;font-weight: normal;src: local('icomoon'), local('icomoon'), url('<?php echo esc_url(plugin_dir_url(__FILE__)) ?>icomoon/icomoon.ttf');}
75
  [class^="icon-"], [class*=" icon-"] {font-family: 'icomoon';speak: none;font-style: normal;font-weight: normal;font-variant: normal;text-transform: none;line-height: 1;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;}
76
  <?php }
77
  }
111
  else
112
  $ID = $post->ID;
113
  if( $ID!=null ){
114
+ do_action('ampforwp_above_the_title');
115
+ ?><h1 class="amp-post-title"><?php
116
+ $ampforwp_title = get_the_title($ID);
117
+ $ampforwp_title = apply_filters('ampforwp_filter_single_title', $ampforwp_title);
118
+ echo esc_html( $ampforwp_title );
119
+ ?></h1><?php
120
+ do_action('ampforwp_below_the_title');
 
121
  }
122
  }
123
 
132
  else
133
  $post_id = $post->ID;
134
  if ( $post_id != null && true == $redux_builder_amp['enable-excerpt-single'] ) { ?>
135
+ <p><?php
136
+ if ( has_excerpt() ) {
137
+ $content = get_the_excerpt();
138
+ } else {
139
+ $content = get_the_content();
140
+ }
141
+ /* `wp_trim_words` will strip all the tags
142
+ as it has `wp_strip_all_tags` inside to clean */
143
+ echo wp_trim_words( strip_shortcodes( $content ) , $no_of_words );
144
+ ?></p><?php
145
  }
146
  }
147
 
224
  function amp_post_navigation( ){
225
  global $loadComponent;
226
  if(isset($loadComponent['AMP-post-navigation']) && $loadComponent['AMP-post-navigation']==true){
227
+ echo ampforwp_framework_get_post_navigation();
228
  }
229
  }
230
 
292
 
293
  add_action('amp_post_template_head','ampforwp_sanitize_archive_desc');
294
  function ampforwp_sanitize_archive_desc(){
295
+ $description = get_the_archive_description();
296
+ if ($description) {
297
+ $sanitizer = new AMPFORWP_Content( $description, array(),
298
+ apply_filters( 'ampforwp_content_sanitizers',
299
+ array(
300
+ 'AMP_Style_Sanitizer' => array(),
301
+ 'AMP_Blacklist_Sanitizer' => array(),
302
+ 'AMP_Img_Sanitizer' => array(),
303
+ 'AMP_Video_Sanitizer' => array(),
304
+ 'AMP_Audio_Sanitizer' => array(),
305
+ 'AMP_Iframe_Sanitizer' => array(
306
+ 'add_placeholder' => true,
307
+ )
308
+ ) ) );
309
+
310
+ $amp_component_scripts = $sanitizer->amp_scripts;
311
+
312
+ if ( $sanitizer && $amp_component_scripts) {
313
+ foreach ($amp_component_scripts as $ampforwp_service => $ampforwp_js_file) { ?>
314
+ <script custom-element="<?php echo esc_attr($ampforwp_service); ?>" src="<?php echo esc_url($ampforwp_js_file); ?>" async></script> <?php
315
+ }
316
+ }
317
+ }
318
  }
 
319
  // Homepage
320
  if ( is_home() ) {
321
 
341
  $bodyClass .= ' rtl ';
342
  }
343
  ?><!doctype html>
344
+ <html <?php echo esc_attr(ampforwp_amp_nonamp_convert('amp ')); ?><?php echo AMP_HTML_Utils::build_attributes_string( $thisTemplate->get( 'html_tag_attributes' ) ); ?>>
345
  <head>
346
  <meta charset="utf-8">
347
 
416
  }
417
 
418
  function amp_non_amp_link(){
419
+ $allowed_tags = '<p><a><b><strong><i><u><ul><ol><li><h1><h2><h3><h4><h5><h6><table><tr><th><td><em><span>';
420
  global $redux_builder_amp;
421
+ echo '<span>' . strip_tags(ampforwp_translation($redux_builder_amp['amp-translator-footer-text'],'All Rights Reserved'),$allowed_tags) . '</span>' ;
422
  if($redux_builder_amp['amp-footer-link-non-amp-page']=='1') { ampforwp_view_nonamp(); }
423
  }
424
 
426
  function amp_back_to_top_link(){
427
  global $redux_builder_amp;
428
  if( '1' == $redux_builder_amp['ampforwp-footer-top'] ) { ?>
429
+ <a title="back to top" on="tap:backtotop.scrollTo(duration=500)" class="btt" ><?php echo esc_attr(ampforwp_translation( $redux_builder_amp['amp-translator-top-text'], 'Top')); ?></a>
430
  <?php }
431
  }
432
 
440
 
441
  // The Content
442
  function amp_content($post_id= ''){
443
+ global $redux_builder_amp, $post;
 
444
 
445
+ if ( empty( $post_id )) {
446
+ $post_id = get_queried_object_id();
447
+ if ( ampforwp_is_front_page() ) {
448
+ $post_id = ampforwp_get_frontpage_id();
449
+ }
450
+ elseif ( ampforwp_polylang_front_page() ) {
451
+ $post_id = pll_get_post(get_option('page_on_front'));
452
+ }
453
  }
 
454
 
455
+ $thisTemplate = new AMP_Post_Template($post_id);
456
+ do_action('ampforwp_before_post_content',$thisTemplate);
457
  $amp_custom_content_enable = get_post_meta( $thisTemplate->get( 'post_id' ) , 'ampforwp_custom_content_editor_checkbox', true);
458
  // Normal Content
459
  if ( ! $amp_custom_content_enable ) {
493
  }
494
  }
495
  $ampforwp_the_content = apply_filters('ampforwp_modify_the_content',$ampforwp_the_content);
496
+ echo $ampforwp_the_content; // amphtml content, no kses
497
+ do_action('ampforwp_after_post_content',$thisTemplate);
498
+ }
499
 
500
  function amp_date( $args=array() ) {
501
 
504
  $args = array('format' => 'traditional');
505
  }
506
  if ( (isset($args['format']) && $args['format'] == 'traditional') || 'time' == $args ) {
507
+ $post_date = get_the_date() . ' '. get_the_time();
508
  } else {
509
  $post_date = human_time_diff(
510
  get_the_time('U', get_the_ID() ),
516
  $post_date = date($args['custom_format'],get_the_time('U', get_the_ID() ));
517
  }
518
  if ( 'date' == $args || 'time' == $args ) {
519
+ echo esc_attr($post_date) .' ';
520
  }
521
  else
522
+ echo '<div class="loop-date">'.esc_attr($post_date).'</div>';
523
  }
524
 
525
  //Load font Compoment
578
  $post_author = get_userdata($post->post_author);
579
  $author_link = get_author_posts_url($post_author->ID);
580
  if ( $author_name ) {
581
+ echo ' <a href="'. ampforwp_url_controller($author_link).'"> ' .esc_html( $post_author->display_name ).'</a>';
582
  }
583
  if ( $avatar && true == ampforwp_gravatar_checker($post_author->user_email) ) {
584
  $author_avatar_url = get_avatar_url( $post_author->ID, array( 'size' => $avatar_size ) );
585
  ?>
586
+ <amp-img <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> src="<?php echo esc_url($author_avatar_url); ?>" width="<?php echo esc_attr($avatar_size); ?>" height="<?php echo esc_attr($avatar_size); ?>" layout="fixed"></amp-img>
587
  <?php }
588
  elseif ( $avatar && false == ampforwp_gravatar_checker($post_author->user_email ) ) {
589
  $avatar_img = get_avatar( $post_author->user_email, $avatar_size );
590
  $amp_html_sanitizer = new AMPFORWP_Content( $avatar_img, array(), apply_filters( 'ampforwp_content_sanitizers', array( 'AMP_Img_Sanitizer' => array() ) ) );
591
  $amp_html = $amp_html_sanitizer->get_amp_content();
592
+ echo $amp_html; // amphtml content, no kses
593
  }
594
 
595
  }
components/gdpr/gdpr.php CHANGED
@@ -6,7 +6,7 @@
6
  $reject = $redux_builder_amp['amp-gdpr-compliance-reject-text'];
7
  $settings = $redux_builder_amp['amp-gdpr-compliance-settings-text'];
8
  $user_data = $redux_builder_amp['amp-gdpr-compliance-textarea'];
9
- $form_url = admin_url('admin-ajax.php?action=amp_consent_submission');
10
  $form_url = preg_replace('#^https?:#', '', $form_url);
11
  $more_info = $redux_builder_amp['amp-gdpr-compliance-for-more-privacy-info'];
12
  $privacy_page = '';
@@ -119,7 +119,7 @@ function ampforwp_gdpr_css(){
119
  display: inline-block;
120
  }
121
  #footer .gdpr_fmi a{
122
- color: <?php echo $redux_builder_amp['swift-color-scheme']['color']; ?>;
123
  }
124
  @media(max-width:768px){
125
  .gdpr_w{width: 85%;margin:0 auto;padding:1.5rem;}
@@ -235,11 +235,15 @@ function ampforwp_gdpr_css(){
235
  }
236
 
237
  function amp_consent_submission(){
 
 
 
 
238
  $current_url = $site_url = $site_host = $amp_site = '';
239
  $current_url = wp_get_referer();
240
  $site_url = parse_url( get_site_url() );
241
  $site_host = $site_url['host'];
242
  $amp_site = $site_url['scheme'] . '://' . $site_url['host'];
243
- header("AMP-Access-Control-Allow-Source-Origin: $amp_site ");
244
- header("AMP-Redirect-To: $current_url ");
245
  }
6
  $reject = $redux_builder_amp['amp-gdpr-compliance-reject-text'];
7
  $settings = $redux_builder_amp['amp-gdpr-compliance-settings-text'];
8
  $user_data = $redux_builder_amp['amp-gdpr-compliance-textarea'];
9
+ $form_url = admin_url('admin-ajax.php?action=amp_consent_submission&verify_nonce='.wp_create_nonce('amp_consent'));
10
  $form_url = preg_replace('#^https?:#', '', $form_url);
11
  $more_info = $redux_builder_amp['amp-gdpr-compliance-for-more-privacy-info'];
12
  $privacy_page = '';
119
  display: inline-block;
120
  }
121
  #footer .gdpr_fmi a{
122
+ color: <?php echo ampforwp_sanitize_color($redux_builder_amp['swift-color-scheme']['color']); ?>;
123
  }
124
  @media(max-width:768px){
125
  .gdpr_w{width: 85%;margin:0 auto;padding:1.5rem;}
235
  }
236
 
237
  function amp_consent_submission(){
238
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'amp_consent' ) ) {
239
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
240
+ die;
241
+ }
242
  $current_url = $site_url = $site_host = $amp_site = '';
243
  $current_url = wp_get_referer();
244
  $site_url = parse_url( get_site_url() );
245
  $site_host = $site_url['host'];
246
  $amp_site = $site_url['scheme'] . '://' . $site_url['host'];
247
+ header("AMP-Access-Control-Allow-Source-Origin: esc_url($amp_site) ");
248
+ header("AMP-Redirect-To: esc_url($current_url) ");
249
  }
components/logo/logo.php CHANGED
@@ -14,7 +14,6 @@ function ampforwp_framework_get_logo(){
14
  } else {
15
  if($redux_builder_amp['ampforwp-homepage-on-off-support']) {
16
  $ampforwp_home_url = ampforwp_url_controller( get_bloginfo('url') );
17
- //$ampforwp_home_url = user_trailingslashit( trailingslashit( get_bloginfo('url') ) . AMPFORWP_AMP_QUERY_VAR );
18
  } else {
19
  if( $redux_builder_amp['amp-mobile-redirection'] ) {
20
  $ampforwp_home_url = trailingslashit( get_bloginfo('url') ).'?nonamp=1';
@@ -29,9 +28,9 @@ function ampforwp_framework_get_logo(){
29
  $alt = $logo_url = "";
30
  $alt = ampforwp_default_logo('alt');
31
  $logo_url = __( $redux_builder_amp['opt-media']['url'], 'accelerated-mobile-pages' );
32
- ?><a href="<?php echo esc_url( $ampforwp_home_url ); ?>" <?php if($set_rel_to_noamp){ echo ' rel="nofollow"'; } ?>><amp-img src="<?php echo esc_url( $logo_url ); ?>" width="<?php echo ampforwp_default_logo('width'); ?>" height="<?php echo ampforwp_default_logo('height'); ?>" alt="<?php echo esc_attr($alt); ?>" class="amp-logo" layout="responsive"></amp-img></a><?php } else { if(is_single()){ ?>
33
  <h2> <?php } else{?><h1><?php }?>
34
- <a href="<?php echo esc_url( $ampforwp_home_url ); ?>" <?php if($set_rel_to_noamp){ echo ' rel="nofollow"'; } ?> ><?php bloginfo('name'); ?></a><?php if(is_single()){?></h2><?php } else{?></h1><?php }
35
  } ?></div>
36
  <?php }
37
 
@@ -48,6 +47,6 @@ if( !function_exists( 'amp_framework_logo_styles' ) ){
48
  }
49
  $width .= 'px';
50
  ?>
51
- .amp-logo amp-img{width:<?php echo $max_width; ?>}
52
  <?php }
53
  }
14
  } else {
15
  if($redux_builder_amp['ampforwp-homepage-on-off-support']) {
16
  $ampforwp_home_url = ampforwp_url_controller( get_bloginfo('url') );
 
17
  } else {
18
  if( $redux_builder_amp['amp-mobile-redirection'] ) {
19
  $ampforwp_home_url = trailingslashit( get_bloginfo('url') ).'?nonamp=1';
28
  $alt = $logo_url = "";
29
  $alt = ampforwp_default_logo('alt');
30
  $logo_url = __( $redux_builder_amp['opt-media']['url'], 'accelerated-mobile-pages' );
31
+ ?><a href="<?php echo esc_url( $ampforwp_home_url ); ?>" <?php if($set_rel_to_noamp){ echo esc_attr(' rel="nofollow"'); } ?>><amp-img src="<?php echo esc_url( $logo_url ); ?>" width="<?php echo esc_attr(ampforwp_default_logo('width')); ?>" height="<?php echo esc_attr(ampforwp_default_logo('height')); ?>" alt="<?php echo esc_attr($alt); ?>" class="amp-logo" layout="responsive"></amp-img></a><?php } else { if(is_single()){ ?>
32
  <h2> <?php } else{?><h1><?php }?>
33
+ <a href="<?php echo esc_url( $ampforwp_home_url ); ?>" <?php if($set_rel_to_noamp){ echo esc_attr(' rel="nofollow"'); } ?> ><?php bloginfo('name'); ?></a><?php if(is_single()){?></h2><?php } else{?></h1><?php }
34
  } ?></div>
35
  <?php }
36
 
47
  }
48
  $width .= 'px';
49
  ?>
50
+ .amp-logo amp-img{width:<?php echo esc_attr($max_width); ?>}
51
  <?php }
52
  }
components/loop/loop.php CHANGED
@@ -39,7 +39,7 @@ function amp_archive_title(){
39
  }
40
  if($paged <= '1') {?>
41
  <div class="amp-archive-desc">
42
- <?php echo $arch_desc ; ?>
43
  </div> <?php
44
  }
45
  }
@@ -55,7 +55,7 @@ function amp_archive_title(){
55
  if( !empty( $cat_childs ) ){
56
  echo "<div class='amp-sub-archives'><ul>";
57
  foreach ($cat_childs as $cat_child ) {
58
- echo '<li><a href="' . get_term_link( $cat_child ) . '">' . $cat_child->name . '</a></li>';
59
  }
60
  echo "</ul></div>";
61
  }
@@ -65,7 +65,7 @@ function amp_archive_title(){
65
  if(function_exists('ampforwp_translation')){
66
  $label = ampforwp_translation( $redux_builder_amp['amp-translator-search-text'], 'You searched for:');
67
  }
68
- echo '<h3 class="amp-loop-label">'.$label . ' ' . get_search_query().'</h3>';
69
  }
70
  }
71
 
@@ -271,9 +271,9 @@ function amp_loop_title($data=array()){
271
  if(isset($data['attributes']) && $data['attributes']!=""){
272
  $attributes = $data['attributes'];
273
  }
274
- echo '<'.$tag.' '.$attributes.'>';
275
  if(!isset($data['link']) ){
276
- echo '<a href="'. amp_loop_permalink(true) .'">';
277
  }
278
  echo the_title('','',false);
279
 
@@ -289,14 +289,14 @@ function amp_loop_date($args=array()){
289
  $args['format'] = 'traditional';
290
  }
291
  if(isset($args['format']) && $args['format']=='traditional'){
292
- $post_date = esc_html( get_the_date() ) . ' '.esc_html( get_the_time());
293
  }else{
294
  $post_date = human_time_diff(
295
  get_the_time('U', get_the_ID() ),
296
  current_time('timestamp') ) .' '. ampforwp_translation( $redux_builder_amp['amp-translator-ago-date-text'],
297
  'ago');
298
  }
299
- echo '<div class="loop-date">'.$post_date.'</div>';
300
  }
301
 
302
  function amp_loop_excerpt($excerpt_length = 15,$tag = 'p', $class = ''){
@@ -316,16 +316,16 @@ function amp_loop_excerpt($excerpt_length = 15,$tag = 'p', $class = ''){
316
  }
317
 
318
  if( ampforwp_get_setting('ampforwp-homepage-loop-readmore-link') == 1 ) {
319
- echo '<'.$tag.' class="'.$class.'">'. wp_trim_words( $content, $excerpt_length ) .' '.'<a href="'. esc_url(ampforwp_url_controller(get_permalink($post->ID))) . '">'. ampforwp_translation($redux_builder_amp['amp-translator-read-more'],'Read More') . '</a></'.$tag.'>';
320
  } else {
321
- echo '<'.$tag.' class="'.$class.'">'. wp_trim_words( $content, $excerpt_length ) .'</'.$tag.'>';
322
  }
323
 
324
  }
325
 
326
  function amp_loop_all_content($tag = 'p'){
327
  $fullContent = strip_shortcodes( get_the_content() );
328
- echo '<'.$tag.'>'. $fullContent .'</'.$tag.'>';
329
  }
330
 
331
  function amp_loop_permalink($return,$amp_query_var ='amp'){
@@ -334,7 +334,7 @@ function amp_loop_permalink($return,$amp_query_var ='amp'){
334
  return ampforwp_url_controller( get_permalink() ) ;
335
  }
336
  if ( isset($redux_builder_amp['ampforwp-single-related-posts-link']) && true == $redux_builder_amp['ampforwp-single-related-posts-link'] ) {
337
- echo get_permalink();
338
  }
339
  else
340
  echo ampforwp_url_controller( get_permalink() );
@@ -411,11 +411,11 @@ function amp_loop_image( $data=array() ) {
411
  $imageClass = $changesInImageData["image_class"];
412
  $imageLink = $changesInImageData["image_link"];
413
  }
414
- echo '<'.$tag.' class="loop-img '.$tag_class.'">';
415
- echo '<a href="'.$imageLink.'">';
416
- echo '<amp-img src="'. $thumb_url .'" width="'.$thumb_width.'" height="'.$thumb_height.'" '. $layout_responsive .' class="'.$imageClass.'"></amp-img>';
417
  echo '</a>';
418
- echo '</'.$tag.'>';
419
  }
420
  }
421
  }
@@ -427,9 +427,9 @@ function amp_loop_category(){
427
  echo ' <ul class="loop-category">';
428
  foreach((get_the_category()) as $category) {
429
  if ( false == $redux_builder_amp['ampforwp-archive-support'] ) {
430
- echo '<li class="amp-cat-'. $category->term_id.'">'. $category->cat_name.'</li>';
431
  }else{
432
- echo '<li class="amp-cat-'. $category->term_id.'"><a href="'.ampforwp_url_controller( get_category_link( $category->term_id ) ).'">'. $category->cat_name.'</a></li>';
433
  }
434
  }
435
  echo '</ul>';
39
  }
40
  if($paged <= '1') {?>
41
  <div class="amp-archive-desc">
42
+ <?php echo $arch_desc;// amphtml content, no kses ?>
43
  </div> <?php
44
  }
45
  }
55
  if( !empty( $cat_childs ) ){
56
  echo "<div class='amp-sub-archives'><ul>";
57
  foreach ($cat_childs as $cat_child ) {
58
+ echo '<li><a href="' . esc_url(get_term_link( $cat_child )) . '">' . esc_attr($cat_child->name) . '</a></li>';
59
  }
60
  echo "</ul></div>";
61
  }
65
  if(function_exists('ampforwp_translation')){
66
  $label = ampforwp_translation( $redux_builder_amp['amp-translator-search-text'], 'You searched for:');
67
  }
68
+ echo '<h3 class="amp-loop-label">'.esc_attr($label) . ' ' . esc_attr(get_search_query()).'</h3>';
69
  }
70
  }
71
 
271
  if(isset($data['attributes']) && $data['attributes']!=""){
272
  $attributes = $data['attributes'];
273
  }
274
+ echo '<'.esc_attr($tag).' '.esc_attr($attributes).'>';
275
  if(!isset($data['link']) ){
276
+ echo '<a href="'. esc_url(amp_loop_permalink(true)) .'">';
277
  }
278
  echo the_title('','',false);
279
 
289
  $args['format'] = 'traditional';
290
  }
291
  if(isset($args['format']) && $args['format']=='traditional'){
292
+ $post_date = get_the_date() . ' '. get_the_time();
293
  }else{
294
  $post_date = human_time_diff(
295
  get_the_time('U', get_the_ID() ),
296
  current_time('timestamp') ) .' '. ampforwp_translation( $redux_builder_amp['amp-translator-ago-date-text'],
297
  'ago');
298
  }
299
+ echo '<div class="loop-date">'.esc_html($post_date).'</div>';
300
  }
301
 
302
  function amp_loop_excerpt($excerpt_length = 15,$tag = 'p', $class = ''){
316
  }
317
 
318
  if( ampforwp_get_setting('ampforwp-homepage-loop-readmore-link') == 1 ) {
319
+ echo ('<'.$tag.' class="'.$class.'">'. wp_trim_words( $content, $excerpt_length ) .' '.'<a href="'. ampforwp_url_controller(get_permalink($post->ID)) . '">'. ampforwp_translation($redux_builder_amp['amp-translator-read-more'],'Read More') . '</a></'.$tag.'>');
320
  } else {
321
+ echo ('<'.$tag.' class="'.esc_attr($class).'">'. wp_trim_words( $content, $excerpt_length ) .'</'.$tag.'>');
322
  }
323
 
324
  }
325
 
326
  function amp_loop_all_content($tag = 'p'){
327
  $fullContent = strip_shortcodes( get_the_content() );
328
+ echo ('<'.$tag.'>'. $fullContent .'</'.$tag.'>');
329
  }
330
 
331
  function amp_loop_permalink($return,$amp_query_var ='amp'){
334
  return ampforwp_url_controller( get_permalink() ) ;
335
  }
336
  if ( isset($redux_builder_amp['ampforwp-single-related-posts-link']) && true == $redux_builder_amp['ampforwp-single-related-posts-link'] ) {
337
+ echo esc_url(get_permalink());
338
  }
339
  else
340
  echo ampforwp_url_controller( get_permalink() );
411
  $imageClass = $changesInImageData["image_class"];
412
  $imageLink = $changesInImageData["image_link"];
413
  }
414
+ echo '<'.esc_attr($tag).' class="loop-img '.esc_attr($tag_class).'">';
415
+ echo '<a href="'.esc_url($imageLink).'">';
416
+ echo '<amp-img src="'. esc_url($thumb_url) .'" width="'.esc_attr($thumb_width).'" height="'.esc_attr($thumb_height).'" '. esc_attr($layout_responsive) .' class="'.esc_attr($imageClass).'"></amp-img>';
417
  echo '</a>';
418
+ echo '</'.esc_attr($tag).'>';
419
  }
420
  }
421
  }
427
  echo ' <ul class="loop-category">';
428
  foreach((get_the_category()) as $category) {
429
  if ( false == $redux_builder_amp['ampforwp-archive-support'] ) {
430
+ echo '<li class="amp-cat-'. esc_attr($category->term_id).'">'. esc_attr($category->cat_name).'</li>';
431
  }else{
432
+ echo '<li class="amp-cat-'. esc_attr($category->term_id).'"><a href="'.ampforwp_url_controller( get_category_link( $category->term_id ) ).'">'. esc_attr($category->cat_name).'</a></li>';
433
  }
434
  }
435
  echo '</ul>';
components/menu/menu.php CHANGED
@@ -21,5 +21,18 @@ function amp_menu_html($echo){
21
  //Load styling for Menu
22
  add_action('amp_post_template_css','amp_menu_styles',11);
23
  function amp_menu_styles(){ ?>
24
- aside{width:150px}.amp-menu{list-style-type:none;margin:0;padding:0}.amp-menu li{position:relative;display:block}.amp-menu li.menu-item-has-children ul{display:none}.amp-menu li.menu-item-has-children:hover>ul{display:}.amp-menu li.menu-item-has-children>ul>li{padding-left:10px}.amp-menu li.menu-item-has-children:after{content:" > ";position:absolute;padding:10px;right:0;top:0;z-index:10000;line-height:1;}.amp-menu>li a{padding:7px;display:block;margin-bottom:1px}.amp-menu>li ul{list-style-type:none;margin:0;padding:0;position:relative}
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  <?php }
21
  //Load styling for Menu
22
  add_action('amp_post_template_css','amp_menu_styles',11);
23
  function amp_menu_styles(){ ?>
24
+ aside{width:150px}
25
+ .amp-menu{list-style-type:none;margin:0;padding:0}
26
+ .amp-menu li{position:relative;display:block}
27
+ .amp-menu li.menu-item-has-children ul{display:none}
28
+ .amp-menu li.menu-item-has-children:hover>ul{display:}
29
+ .amp-menu li.menu-item-has-children>ul>li{padding-left:10px}
30
+ .amp-menu li ul li a{
31
+ padding: 4px 10px;
32
+ font-size:14px;
33
+ }
34
+ .amp-menu input{display:none;}
35
+ .amp-menu [id^=drop]:checked + label + ul{ display: block;}
36
+ .amp-menu .toggle:after{content:'\25be';position:absolute;padding: 10px 15px 10px 30px;right:0;font-size:18px;color:#6d6a6a;top:0px;z-index:10000;line-height:1;cursor: pointer;}
37
+ .amp-menu>li a{padding:7px;display:block;margin-bottom:1px}.amp-menu>li ul{list-style-type:none;margin:0;padding:0;position:relative}
38
  <?php }
components/post-navigation/post-navigation.php CHANGED
@@ -7,7 +7,7 @@ function ampforwp_framework_get_post_navigation(){
7
  if (!empty( $next_post )) {
8
  $next_text = $next_post->post_title; ?>
9
  <div class="next">
10
- <a href="<?php echo ampforwp_url_controller( get_permalink( $next_post->ID ) ); ?>"> <span><?php echo ampforwp_translation($redux_builder_amp['amp-translator-next-text'], 'Next' ); ?></span><?php echo apply_filters('ampforwp_next_link',$next_text ); ?> &raquo;</a>
11
  </div>
12
  <?php } ?>
13
 
@@ -16,7 +16,7 @@ function ampforwp_framework_get_post_navigation(){
16
  if (!empty( $prev_post )) {
17
  $prev_text = $prev_post->post_title; ?>
18
  <div class="prev">
19
- <a href="<?php echo ampforwp_url_controller( get_permalink( $prev_post->ID ) ); ?>"> <span><?php echo ampforwp_translation($redux_builder_amp['amp-translator-previous-text'], 'Previous' ); ?></span> &laquo; <?php echo apply_filters('ampforwp_prev_link',$prev_text ); ?></a>
20
  </div>
21
  <?php } ?>
22
  <div class="clearfix"></div>
7
  if (!empty( $next_post )) {
8
  $next_text = $next_post->post_title; ?>
9
  <div class="next">
10
+ <a href="<?php echo ampforwp_url_controller( get_permalink( $next_post->ID ) ); ?>"> <span><?php echo esc_html(ampforwp_translation($redux_builder_amp['amp-translator-next-text'], 'Next' )); ?></span><?php echo esc_html(apply_filters('ampforwp_next_link',$next_text )); ?> &raquo;</a>
11
  </div>
12
  <?php } ?>
13
 
16
  if (!empty( $prev_post )) {
17
  $prev_text = $prev_post->post_title; ?>
18
  <div class="prev">
19
+ <a href="<?php echo ampforwp_url_controller( get_permalink( $prev_post->ID ) ); ?>"> <span><?php echo esc_html(ampforwp_translation($redux_builder_amp['amp-translator-previous-text'], 'Previous' )); ?></span> &laquo; <?php echo esc_html(apply_filters('ampforwp_prev_link',$prev_text )); ?></a>
20
  </div>
21
  <?php } ?>
22
  <div class="clearfix"></div>
components/post-pagination/post-pagination.php CHANGED
@@ -77,7 +77,7 @@ function ampforwp_framework_get_post_pagination( $args = '' ) {
77
  */
78
  $html = apply_filters( 'ampforwp_framework_get_post_pagination', $output, $args );
79
  if ( $r['echo'] ) {
80
- echo $html;
81
  }
82
  return $html;
83
  }
@@ -96,7 +96,7 @@ function ampforwp_framework_get_post_paginated_link( $i, $args = '' ) {
96
  $post = get_post();
97
  $query_args = array();
98
  if ( isset($args) ) {
99
- $class = "class='$args'";
100
  }
101
  if ( 1 == $i ) {
102
  $url = get_permalink();
@@ -129,7 +129,7 @@ function amp_paginated_post_modify_amphtml($url) {
129
  if($post_paginated_page){
130
  $url = get_permalink();
131
  $new_url = $url."$post_paginated_page/?amp";
132
- return $new_url;
133
  }
134
  }
135
  return $url;
@@ -155,5 +155,5 @@ function amp_paginated_post_rel_canonical(){
155
  $new_canonical_url = trailingslashit($new_canonical_url);
156
  $post_paginated_page = get_query_var('page');
157
  if($post_paginated_page){?>
158
- <link rel="canonical" href="<?php echo $new_canonical_url.$post_paginated_page ?>/" /><?php }
159
  }
77
  */
78
  $html = apply_filters( 'ampforwp_framework_get_post_pagination', $output, $args );
79
  if ( $r['echo'] ) {
80
+ echo ($html);
81
  }
82
  return $html;
83
  }
96
  $post = get_post();
97
  $query_args = array();
98
  if ( isset($args) ) {
99
+ $class = "class='".esc_attr($args)."'";
100
  }
101
  if ( 1 == $i ) {
102
  $url = get_permalink();
129
  if($post_paginated_page){
130
  $url = get_permalink();
131
  $new_url = $url."$post_paginated_page/?amp";
132
+ return esc_url($new_url);
133
  }
134
  }
135
  return $url;
155
  $new_canonical_url = trailingslashit($new_canonical_url);
156
  $post_paginated_page = get_query_var('page');
157
  if($post_paginated_page){?>
158
+ <link rel="canonical" href="<?php echo esc_url($new_canonical_url.$post_paginated_page) ?>/" /><?php }
159
  }
components/related-posts/related-posts.php CHANGED
@@ -111,7 +111,7 @@ function ampforwp_related_post(){
111
  global $redux_builder_amp;
112
  do_action('ampforwp_above_related_post'); //Above Related Posts
113
  ?>
114
- <h3 class="amp-related-posts-title"><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-related-text'], 'Related Post' ); ?></h3>
115
  <?php }
116
 
117
  function ampforwp_get_relatedpost_image( $imagetype ='thumbnail', $data=array() ){
@@ -152,7 +152,7 @@ function ampforwp_get_relatedpost_image( $imagetype ='thumbnail', $data=array()
152
  }
153
 
154
  if ( $thumb_url && $show_image ) { ?>
155
- <amp-img src="<?php echo esc_url( $thumb_url ); ?>" width="<?php echo $thumb_width; ?>" height="<?php echo $thumb_height; ?>" layout="responsive"></amp-img>
156
  <?php }
157
  } ?>
158
  </a>
@@ -178,7 +178,7 @@ function ampforwp_get_relatedpost_content($argsdata=array()){
178
  $content = get_the_content();
179
  }
180
  ?><p><?php
181
- echo wp_trim_words( strip_shortcodes( $content ) , '15' );
182
  ?></p><?php
183
  }
184
  $show_author = (isset($argsdata['show_author'])? $argsdata['show_author'] : true);
111
  global $redux_builder_amp;
112
  do_action('ampforwp_above_related_post'); //Above Related Posts
113
  ?>
114
+ <h3 class="amp-related-posts-title"><?php echo esc_html(ampforwp_translation( $redux_builder_amp['amp-translator-related-text'], 'Related Post' )); ?></h3>
115
  <?php }
116
 
117
  function ampforwp_get_relatedpost_image( $imagetype ='thumbnail', $data=array() ){
152
  }
153
 
154
  if ( $thumb_url && $show_image ) { ?>
155
+ <amp-img src="<?php echo esc_url( $thumb_url ); ?>" width="<?php echo esc_attr($thumb_width); ?>" height="<?php echo esc_attr($thumb_height); ?>" layout="responsive"></amp-img>
156
  <?php }
157
  } ?>
158
  </a>
178
  $content = get_the_content();
179
  }
180
  ?><p><?php
181
+ echo (wp_trim_words( strip_shortcodes( $content ) , '15' ));
182
  ?></p><?php
183
  }
184
  $show_author = (isset($argsdata['show_author'])? $argsdata['show_author'] : true);
components/search/search.php CHANGED
@@ -6,18 +6,18 @@ function ampforwp_framework_get_search_form() {
6
  $amp_query_variable = '';
7
  $amp_query_variable_val = '';
8
  $label = ampforwp_translation(isset($redux_builder_amp['ampforwp-search-label']) && $redux_builder_amp['ampforwp-search-label'], 'Type your search query and hit enter');
9
- $action_url = esc_url( get_bloginfo('url') );
10
  $action_url = preg_replace('#^http?:#', '', $action_url);
11
  $placeholder = ampforwp_translation($redux_builder_amp['ampforwp-search-placeholder'], 'Type Here' );
12
  if ( isset($redux_builder_amp['ampforwp-amp-takeover']) && !$redux_builder_amp['ampforwp-amp-takeover'] ) {
13
  $amp_query_variable = 'amp';
14
  $amp_query_variable_val = '1';
15
  }
16
- $form = '<form role="search" method="get" id="amp-search" class="amp-search" target="_top" action="' . $action_url .'">
17
  <div class="amp-search-wrapper">
18
- <label aria-label="Type your query" class="screen-reader-text" for="s">' . $label . '</label>
19
- <input type="text" placeholder="AMP" value="'.$amp_query_variable_val.'" name="'.$amp_query_variable.'" class="hidden"/>
20
- <input type="text" placeholder="'.$placeholder.'" value="' . get_search_query() . '" name="s" id="s" />
21
  <label aria-label="Submit amp search" for="amp-search-submit" >
22
  <input type="submit" class="icon-search" id="amp-search-submit" value="'. esc_attr_x( 'Search', 'submit button' ) .'" />
23
  </label>
@@ -25,8 +25,7 @@ function ampforwp_framework_get_search_form() {
25
  </div>
26
  </div>
27
  </form>';
28
- echo $form;
29
-
30
  }
31
  ampforwp_add_scripts();
32
  function ampforwp_add_scripts(){
6
  $amp_query_variable = '';
7
  $amp_query_variable_val = '';
8
  $label = ampforwp_translation(isset($redux_builder_amp['ampforwp-search-label']) && $redux_builder_amp['ampforwp-search-label'], 'Type your search query and hit enter');
9
+ $action_url = ( get_bloginfo('url') );
10
  $action_url = preg_replace('#^http?:#', '', $action_url);
11
  $placeholder = ampforwp_translation($redux_builder_amp['ampforwp-search-placeholder'], 'Type Here' );
12
  if ( isset($redux_builder_amp['ampforwp-amp-takeover']) && !$redux_builder_amp['ampforwp-amp-takeover'] ) {
13
  $amp_query_variable = 'amp';
14
  $amp_query_variable_val = '1';
15
  }
16
+ $form = '<form role="search" method="get" id="amp-search" class="amp-search" target="_top" action="' . esc_url($action_url) .'">
17
  <div class="amp-search-wrapper">
18
+ <label aria-label="Type your query" class="screen-reader-text" for="s">' . esc_html__($label,'accelerated-mobile-pages') . '</label>
19
+ <input type="text" placeholder="AMP" value="'.esc_attr($amp_query_variable_val).'" name="'.esc_attr($amp_query_variable).'" class="hidden"/>
20
+ <input type="text" placeholder="'.esc_attr($placeholder).'" value="' . esc_attr(get_search_query()) . '" name="s" id="s" />
21
  <label aria-label="Submit amp search" for="amp-search-submit" >
22
  <input type="submit" class="icon-search" id="amp-search-submit" value="'. esc_attr_x( 'Search', 'submit button' ) .'" />
23
  </label>
25
  </div>
26
  </div>
27
  </form>';
28
+ echo $form;
 
29
  }
30
  ampforwp_add_scripts();
31
  function ampforwp_add_scripts(){
components/sidebar/sidebar.php CHANGED
@@ -8,26 +8,26 @@ if(!function_exists('ampforwp_framework_get_sideabr')){
8
  unset($data['action']);
9
  switch(strtolower($action)) {
10
  case 'start':
11
- echo sideber_begin($data);
12
  do_action('amp_sidebar_start');
13
  break;
14
  case 'end':
15
  do_action('amp_sidebar_end');
16
- echo sideber_end();
17
  break;
18
  case 'open-button':
19
- echo sidebar_opening_button($data);
20
  break;
21
  case 'close-button':
22
- echo sidebar_close_button($data);
23
  break;
24
  default:
25
- echo esc_html('action not found');
26
  break;
27
  }
28
  }
29
  }
30
- function sidebar_close_button($data=array() ){
31
  $id = 'sidebar';
32
  $class = 'amp-sidebar-close';
33
  if(isset($data['id'])){
@@ -38,7 +38,7 @@ function sidebar_close_button($data=array() ){
38
  }
39
  return '<div role="button" tabindex="0" on="tap:'.esc_attr( $id ).'.close" class="'.esc_attr( $class ).'">X</div>';
40
  }
41
- function sidebar_opening_button($data=array()){
42
  $id = 'sidebar';
43
  $class = 'amp-sidebar-button';
44
  if(isset($data['id'])){
@@ -55,7 +55,7 @@ function sidebar_opening_button($data=array()){
55
  </a>
56
  </div>';
57
  }
58
- function sideber_begin($data=array()){
59
  $attribute = '';
60
  if(count($data)>0){
61
  foreach ($data as $key => $value) {
@@ -64,10 +64,10 @@ function sideber_begin($data=array()){
64
  }else{
65
  $attribute = "id='sidebar' layout='nodisplay' side='right'";
66
  }
67
- return '<amp-sidebar '. $attribute .'>';
68
  }
69
 
70
- function sideber_end(){
71
  return '</amp-sidebar>';
72
  }
73
 
8
  unset($data['action']);
9
  switch(strtolower($action)) {
10
  case 'start':
11
+ echo (ampforwp_sideber_begin($data));
12
  do_action('amp_sidebar_start');
13
  break;
14
  case 'end':
15
  do_action('amp_sidebar_end');
16
+ echo (ampforwp_sideber_end());
17
  break;
18
  case 'open-button':
19
+ echo (ampforwp_sidebar_opening_button($data));
20
  break;
21
  case 'close-button':
22
+ echo (ampforwp_sidebar_close_button($data));
23
  break;
24
  default:
25
+ echo 'action not found';
26
  break;
27
  }
28
  }
29
  }
30
+ function ampforwp_sidebar_close_button($data=array() ){
31
  $id = 'sidebar';
32
  $class = 'amp-sidebar-close';
33
  if(isset($data['id'])){
38
  }
39
  return '<div role="button" tabindex="0" on="tap:'.esc_attr( $id ).'.close" class="'.esc_attr( $class ).'">X</div>';
40
  }
41
+ function ampforwp_sidebar_opening_button($data=array()){
42
  $id = 'sidebar';
43
  $class = 'amp-sidebar-button';
44
  if(isset($data['id'])){
55
  </a>
56
  </div>';
57
  }
58
+ function ampforwp_sideber_begin($data=array()){
59
  $attribute = '';
60
  if(count($data)>0){
61
  foreach ($data as $key => $value) {
64
  }else{
65
  $attribute = "id='sidebar' layout='nodisplay' side='right'";
66
  }
67
+ return '<amp-sidebar '. esc_attr($attribute) .'>';
68
  }
69
 
70
+ function ampforwp_sideber_end(){
71
  return '</amp-sidebar>';
72
  }
73
 
components/social-icons/social-icons.php CHANGED
@@ -101,39 +101,39 @@ function ampforwp_framework_get_social_icons($selected_social_icons){
101
  <div class="amp-social">
102
  <ul>
103
  <?php if( ( in_array( 'twitter' , $selected_social_icons,true) || in_array('twitter', $social_icons_names,true) ) && !empty($selected_social_icons['twitter']) ) { ?>
104
- <a href="<?php echo $selected_social_icons['twitter'] ?>" target ="_blank"><li class="icon-twitter"></li></a>
105
  <?php } ?>
106
 
107
  <?php if( (in_array('facebook', $selected_social_icons,true) || in_array('facebook', $social_icons_names,true)) && !empty($selected_social_icons['facebook']) ) { ?>
108
- <a href="<?php echo $selected_social_icons['facebook'] ?>" target ="_blank"><li class="icon-facebook"></li></a>
109
  <?php } ?>
110
 
111
  <?php if( ( in_array( 'pinterest' , $selected_social_icons,true ) || in_array( 'pinterest', $social_icons_names,true )) && !empty($selected_social_icons['pinterest']) ) { ?>
112
- <a href="<?php echo $selected_social_icons['pinterest'] ?>" target ="_blank"><li class="icon-pinterest"></li></a>
113
  <?php } ?>
114
 
115
  <?php if( (in_array( 'google-plus' , $selected_social_icons,true ) || in_array( 'google-plus' , $social_icons_names,true )) && !empty($selected_social_icons['google-plus']) ) { ?>
116
- <a href="<?php echo $selected_social_icons['google-plus'] ?>" target ="_blank"><li class="icon-google-plus"></li></a>
117
  <?php } ?>
118
 
119
  <?php if( (in_array( 'linkedin' , $selected_social_icons,true ) || in_array( 'linkedin' , $social_icons_names,true )) && !empty($selected_social_icons['linkedin']) ) { ?>
120
- <a href="<?php echo $selected_social_icons['linkedin'] ?>" target ="_blank"><li class="icon-linkedin"></li></a>
121
  <?php } ?>
122
 
123
  <?php if( (in_array( 'youtube' , $selected_social_icons,true ) || in_array( 'youtube' , $social_icons_names,true )) && !empty($selected_social_icons['youtube']) ) { ?>
124
- <a href="<?php echo $selected_social_icons['youtube'] ?>" target ="_blank"><li class="icon-youtube-play"></li></a>
125
  <?php } ?>
126
 
127
  <?php if( (in_array( 'instagram' , $selected_social_icons,true ) || in_array( 'instagram' , $social_icons_names,true )) && !empty($selected_social_icons['instagram']) ) { ?>
128
- <a href="<?php echo $selected_social_icons['instagram'] ?>" target ="_blank"> <li class="icon-instagram"></li></a>
129
  <?php } ?>
130
 
131
  <?php if( ( in_array( 'reddit' , $selected_social_icons,true ) || in_array( 'reddit' , $social_icons_names,true )) && !empty($selected_social_icons['reddit']) ) { ?>
132
- <a href="<?php echo $selected_social_icons['reddit'] ?>" target ="_blank"><li class="icon-reddit-alien"></li></a>
133
  <?php } ?>
134
 
135
  <?php if( ( in_array( 'VKontakte' , $selected_social_icons,true ) || in_array( 'VKontakte' , $social_icons_names,true ) ) && !empty($selected_social_icons['VKontakte']) ) { ?>
136
- <a href="<?php echo $selected_social_icons['VKontakte'] ?>" target ="_blank"><li class="icon-vk"></li></a>
137
  <?php } ?>
138
 
139
  <?php if( ( in_array( 'Odnoklassniki' , $selected_social_icons,true ) || in_array( 'Odnoklassniki' , $social_icons_names,true ) ) && !empty($selected_social_icons['Odnoklassniki']) ) { ?>
@@ -141,11 +141,11 @@ function ampforwp_framework_get_social_icons($selected_social_icons){
141
  <?php } ?>
142
 
143
  <?php if( (in_array( 'snapchat' , $selected_social_icons,true ) || in_array( 'snapchat' , $social_icons_names,true ) ) && !empty($selected_social_icons['snapchat']) ) { ?>
144
- <a href="<?php echo $selected_social_icons['snapchat'] ?>" target ="_blank"><li class="icon-snapchat-ghost"></li></a>
145
  <?php } ?>
146
 
147
  <?php if( (in_array( 'tumblr' , $selected_social_icons,true ) || in_array( 'tumblr' , $social_icons_names,true )) && !empty($selected_social_icons['tumblr']) ) { ?>
148
- <a href="<?php echo $selected_social_icons['tumblr'] ?>" target ="_blank"><li class="icon-tumblr"></li></a>
149
  <?php } ?>
150
 
151
  <?php if ( (in_array( 'telegram' , $selected_social_icons,true ) || in_array( 'telegram' , $social_icons_names,true )) && ! empty($selected_social_icons['telegram']) ) { ?>
@@ -165,7 +165,7 @@ function ampforwp_framework_get_social_icons($selected_social_icons){
165
  <?php } ?>
166
 
167
  <?php if ( (in_array( 'Viber' , $selected_social_icons,true ) || in_array( 'Viber' , $social_icons_names,true )) && ! empty($selected_social_icons['Viber']) ) { ?>
168
- <a href="<?php echo ($selected_social_icons['Viber']); ?>" target ="_blank"><li class="icon-Viber"></li></a>
169
  <?php } ?>
170
 
171
  <?php if( (in_array( 'facebook-like' , $selected_social_icons,true ) || in_array( 'facebook-like' , $social_icons_names,true )) ) { ?>
@@ -195,11 +195,11 @@ add_action('amp_post_template_css','amp_social_styles',11);
195
  function amp_social_styles(){ ?>
196
  @font-face {
197
  font-family: 'icomoon';
198
- src: url('<?php echo plugin_dir_url(__FILE__) ?>fonts/icomoon.eot');
199
- src: url('<?php echo plugin_dir_url(__FILE__) ?>fonts/icomoon.eot') format('embedded-opentype'),
200
- url('<?php echo plugin_dir_url(__FILE__) ?>fonts/icomoon.ttf') format('truetype'),
201
- url('<?php echo plugin_dir_url(__FILE__) ?>fonts/icomoon.woff') format('woff'),
202
- url('<?php echo plugin_dir_url(__FILE__) ?>fonts/icomoon.svg') format('svg');
203
  font-weight: normal;
204
  font-style: normal;
205
  }
101
  <div class="amp-social">
102
  <ul>
103
  <?php if( ( in_array( 'twitter' , $selected_social_icons,true) || in_array('twitter', $social_icons_names,true) ) && !empty($selected_social_icons['twitter']) ) { ?>
104
+ <a href="<?php echo esc_url($selected_social_icons['twitter']) ?>" target ="_blank"><li class="icon-twitter"></li></a>
105
  <?php } ?>
106
 
107
  <?php if( (in_array('facebook', $selected_social_icons,true) || in_array('facebook', $social_icons_names,true)) && !empty($selected_social_icons['facebook']) ) { ?>
108
+ <a href="<?php echo esc_url($selected_social_icons['facebook']) ?>" target ="_blank"><li class="icon-facebook"></li></a>
109
  <?php } ?>
110
 
111
  <?php if( ( in_array( 'pinterest' , $selected_social_icons,true ) || in_array( 'pinterest', $social_icons_names,true )) && !empty($selected_social_icons['pinterest']) ) { ?>
112
+ <a href="<?php echo esc_url($selected_social_icons['pinterest']) ?>" target ="_blank"><li class="icon-pinterest"></li></a>
113
  <?php } ?>
114
 
115
  <?php if( (in_array( 'google-plus' , $selected_social_icons,true ) || in_array( 'google-plus' , $social_icons_names,true )) && !empty($selected_social_icons['google-plus']) ) { ?>
116
+ <a href="<?php echo esc_url($selected_social_icons['google-plus']) ?>" target ="_blank"><li class="icon-google-plus"></li></a>
117
  <?php } ?>
118
 
119
  <?php if( (in_array( 'linkedin' , $selected_social_icons,true ) || in_array( 'linkedin' , $social_icons_names,true )) && !empty($selected_social_icons['linkedin']) ) { ?>
120
+ <a href="<?php echo esc_url($selected_social_icons['linkedin']) ?>" target ="_blank"><li class="icon-linkedin"></li></a>
121
  <?php } ?>
122
 
123
  <?php if( (in_array( 'youtube' , $selected_social_icons,true ) || in_array( 'youtube' , $social_icons_names,true )) && !empty($selected_social_icons['youtube']) ) { ?>
124
+ <a href="<?php echo esc_url($selected_social_icons['youtube']) ?>" target ="_blank"><li class="icon-youtube-play"></li></a>
125
  <?php } ?>
126
 
127
  <?php if( (in_array( 'instagram' , $selected_social_icons,true ) || in_array( 'instagram' , $social_icons_names,true )) && !empty($selected_social_icons['instagram']) ) { ?>
128
+ <a href="<?php echo esc_url($selected_social_icons['instagram']) ?>" target ="_blank"> <li class="icon-instagram"></li></a>
129
  <?php } ?>
130
 
131
  <?php if( ( in_array( 'reddit' , $selected_social_icons,true ) || in_array( 'reddit' , $social_icons_names,true )) && !empty($selected_social_icons['reddit']) ) { ?>
132
+ <a href="<?php echo esc_url($selected_social_icons['reddit']) ?>" target ="_blank"><li class="icon-reddit-alien"></li></a>
133
  <?php } ?>
134
 
135
  <?php if( ( in_array( 'VKontakte' , $selected_social_icons,true ) || in_array( 'VKontakte' , $social_icons_names,true ) ) && !empty($selected_social_icons['VKontakte']) ) { ?>
136
+ <a href="<?php echo esc_url($selected_social_icons['VKontakte']) ?>" target ="_blank"><li class="icon-vk"></li></a>
137
  <?php } ?>
138
 
139
  <?php if( ( in_array( 'Odnoklassniki' , $selected_social_icons,true ) || in_array( 'Odnoklassniki' , $social_icons_names,true ) ) && !empty($selected_social_icons['Odnoklassniki']) ) { ?>
141
  <?php } ?>
142
 
143
  <?php if( (in_array( 'snapchat' , $selected_social_icons,true ) || in_array( 'snapchat' , $social_icons_names,true ) ) && !empty($selected_social_icons['snapchat']) ) { ?>
144
+ <a href="<?php echo esc_url($selected_social_icons['snapchat']) ?>" target ="_blank"><li class="icon-snapchat-ghost"></li></a>
145
  <?php } ?>
146
 
147
  <?php if( (in_array( 'tumblr' , $selected_social_icons,true ) || in_array( 'tumblr' , $social_icons_names,true )) && !empty($selected_social_icons['tumblr']) ) { ?>
148
+ <a href="<?php echo esc_url($selected_social_icons['tumblr']) ?>" target ="_blank"><li class="icon-tumblr"></li></a>
149
  <?php } ?>
150
 
151
  <?php if ( (in_array( 'telegram' , $selected_social_icons,true ) || in_array( 'telegram' , $social_icons_names,true )) && ! empty($selected_social_icons['telegram']) ) { ?>
165
  <?php } ?>
166
 
167
  <?php if ( (in_array( 'Viber' , $selected_social_icons,true ) || in_array( 'Viber' , $social_icons_names,true )) && ! empty($selected_social_icons['Viber']) ) { ?>
168
+ <a href="<?php echo esc_url($selected_social_icons['Viber']); ?>" target ="_blank"><li class="icon-Viber"></li></a>
169
  <?php } ?>
170
 
171
  <?php if( (in_array( 'facebook-like' , $selected_social_icons,true ) || in_array( 'facebook-like' , $social_icons_names,true )) ) { ?>
195
  function amp_social_styles(){ ?>
196
  @font-face {
197
  font-family: 'icomoon';
198
+ src: url('<?php echo esc_url(plugin_dir_url(__FILE__)) ?>fonts/icomoon.eot');
199
+ src: url('<?php echo esc_url(plugin_dir_url(__FILE__)) ?>fonts/icomoon.eot') format('embedded-opentype'),
200
+ url('<?php echo esc_url(plugin_dir_url(__FILE__)) ?>fonts/icomoon.ttf') format('truetype'),
201
+ url('<?php echo esc_url(plugin_dir_url(__FILE__)) ?>fonts/icomoon.woff') format('woff'),
202
+ url('<?php echo esc_url(plugin_dir_url(__FILE__)) ?>fonts/icomoon.svg') format('svg');
203
  font-weight: normal;
204
  font-style: normal;
205
  }
components/theme-loader.php CHANGED
@@ -8,29 +8,13 @@ elseif ( ! defined('AMPFORWP_CUSTOM_THEME') ) {
8
 
9
  require_once( AMPFORWP_CUSTOM_THEME . '/functions.php' );
10
  //Filter the Template files to override previous ones
11
- //add_filter( 'amp_post_template_file', 'ampforwp_custom_header_file', 10, 2 );
12
  add_filter( 'amp_post_template_file', 'ampforwp_designing_custom_template', 10, 3 );
13
- //add_filter( 'amp_post_template_file', 'ampforwp_custom_footer_file', 10, 2 );
14
-
15
- // Custom Header
16
- function ampforwp_custom_header_file( $file, $type ) {
17
- if ( 'header' === $type ) {
18
- $file = AMPFORWP_CUSTOM_THEME . '/header.php';
19
- }
20
- return $file;
21
- }
22
 
23
  // Custom Template Files
24
  function ampforwp_designing_custom_template( $file, $type, $post ) {
25
  global $redux_builder_amp;
26
- // Single file
27
- /*if ( is_single() ) {
28
- if( 'single' === $type && ! ('product' === $post->post_type) ) {
29
- $file = AMPFORWP_CUSTOM_THEME . '/single.php';
30
- }
31
- }*/
32
- // 404 Template
33
 
 
34
  if( 'single' === $type && is_404() ) {
35
  $file = AMPFORWP_CUSTOM_THEME . '/404.php';
36
  }
@@ -259,21 +243,4 @@ elseif ( ! defined('AMPFORWP_CUSTOM_THEME') ) {
259
  $file = AMPFORWP_CUSTOM_THEME . '/page.php';
260
  }
261
  return $file;
262
- }
263
-
264
- // Custom Footer
265
- function ampforwp_custom_footer_file( $file, $type ) {
266
- if ( 'footer' === $type ) {
267
- $file = AMPFORWP_CUSTOM_THEME . '/footer.php';
268
- }
269
- return $file;
270
- }
271
- // Load the Core Styles of Custom Theme
272
- //add_action('amp_css', 'ampforwp_custom_style');
273
- function ampforwp_custom_style() {
274
- global $redux_builder_amp;
275
- require_once( AMPFORWP_CUSTOM_THEME . '/style.php' );
276
- // Custom CSS
277
- echo $redux_builder_amp['css_editor'];
278
- }
279
-
8
 
9
  require_once( AMPFORWP_CUSTOM_THEME . '/functions.php' );
10
  //Filter the Template files to override previous ones
 
11
  add_filter( 'amp_post_template_file', 'ampforwp_designing_custom_template', 10, 3 );
 
 
 
 
 
 
 
 
 
12
 
13
  // Custom Template Files
14
  function ampforwp_designing_custom_template( $file, $type, $post ) {
15
  global $redux_builder_amp;
 
 
 
 
 
 
 
16
 
17
+ // 404 Template
18
  if( 'single' === $type && is_404() ) {
19
  $file = AMPFORWP_CUSTOM_THEME . '/404.php';
20
  }
243
  $file = AMPFORWP_CUSTOM_THEME . '/page.php';
244
  }
245
  return $file;
246
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
feeds/instant-article-feed.php CHANGED
@@ -1,7 +1,6 @@
1
- <?php header('Content-Type: ' . feed_content_type('rss2') . '; charset=' . get_option('blog_charset'), true);
2
  $more = 1;
3
-
4
- echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
5
  ?>
6
 
7
  <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
@@ -10,7 +9,7 @@
10
  <title><?php bloginfo_rss('name'); ?></title>
11
  <link><?php bloginfo_rss('url') ?></link>
12
  <description><?php bloginfo_rss("description") ?></description>
13
- <lastBuildDate><?php echo mysql2date('c', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
14
  <language><?php bloginfo_rss( 'language' ); ?></language>
15
  <?php
16
  global $redux_builder_amp;
@@ -24,10 +23,10 @@
24
  }
25
  $exclude_ids = get_option('ampforwp_ia_exclude_post');
26
  $ia_args = array(
27
- 'post__not_in' => $exclude_ids,
28
  'post_status' => 'publish',
29
  'ignore_sticky_posts' => true,
30
- 'posts_per_page' => $number_of_articles,
31
  );
32
  if ( is_category() ) {
33
  $ia_args['category__in'] = get_queried_object_id();
@@ -38,9 +37,9 @@
38
  if ( is_tax() ) {
39
  $tax_object = get_queried_object();
40
  $ia_args['post_type'] = get_post_type();
41
- $ia_args['tax_query']['taxonomy'] = $tax_object->taxonomy;
42
  $ia_args['tax_query']['field'] = 'id';
43
- $ia_args['tax_query']['terms'] = $tax_object->term_id;
44
  }
45
  $ia_query = new WP_Query( $ia_args );
46
  while( $ia_query->have_posts() ) :
@@ -50,7 +49,7 @@
50
  <title><?php the_title_rss() ?></title>
51
  <link><?php the_permalink_rss() ?></link>
52
  <guid><?php the_guid(); ?></guid>
53
- <pubDate><?php echo mysql2date('c', get_post_time('c', true), false); ?></pubDate>
54
  <?php if ( true == $redux_builder_amp['ampforwp-instant-article-author-meta'] ) { ?>
55
  <author><?php the_author() ?></author>
56
  <?php } ?>
1
+ <?php header('Content-Type: ' . esc_attr(feed_content_type('rss2')) . '; charset=' . esc_attr( get_option('blog_charset') ), true);
2
  $more = 1;
3
+ echo '<?xml version="1.0" encoding="'. esc_attr( get_option('blog_charset') ).'"?'.'>';
 
4
  ?>
5
 
6
  <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
9
  <title><?php bloginfo_rss('name'); ?></title>
10
  <link><?php bloginfo_rss('url') ?></link>
11
  <description><?php bloginfo_rss("description") ?></description>
12
+ <lastBuildDate><?php echo esc_attr(mysql2date('c', get_lastpostmodified('GMT'), false)); ?></lastBuildDate>
13
  <language><?php bloginfo_rss( 'language' ); ?></language>
14
  <?php
15
  global $redux_builder_amp;
23
  }
24
  $exclude_ids = get_option('ampforwp_ia_exclude_post');
25
  $ia_args = array(
26
+ 'post__not_in' => (array) $exclude_ids,
27
  'post_status' => 'publish',
28
  'ignore_sticky_posts' => true,
29
+ 'posts_per_page' => esc_attr($number_of_articles),
30
  );
31
  if ( is_category() ) {
32
  $ia_args['category__in'] = get_queried_object_id();
37
  if ( is_tax() ) {
38
  $tax_object = get_queried_object();
39
  $ia_args['post_type'] = get_post_type();
40
+ $ia_args['tax_query']['taxonomy'] = esc_attr($tax_object->taxonomy);
41
  $ia_args['tax_query']['field'] = 'id';
42
+ $ia_args['tax_query']['terms'] = esc_attr($tax_object->term_id);
43
  }
44
  $ia_query = new WP_Query( $ia_args );
45
  while( $ia_query->have_posts() ) :
49
  <title><?php the_title_rss() ?></title>
50
  <link><?php the_permalink_rss() ?></link>
51
  <guid><?php the_guid(); ?></guid>
52
+ <pubDate><?php echo esc_attr(mysql2date('c', get_post_time('c', true), false)); ?></pubDate>
53
  <?php if ( true == $redux_builder_amp['ampforwp-instant-article-author-meta'] ) { ?>
54
  <author><?php the_author() ?></author>
55
  <?php } ?>
includes/admin-script.js CHANGED
@@ -255,27 +255,6 @@ jQuery(function($) {
255
  allFonts.push({fontFamily: values[i].family });
256
  }
257
 
258
-
259
- // var output = data.items.find('Basic');
260
- // console.log ( output );
261
-
262
-
263
- // let selectedFontDetails = data.items.find((o, i) => {
264
-
265
- // if (o.family === 'Keania One') {
266
- // //arr[i] = { name: 'new string', value: 'this', other: 'that' };
267
- // return data.items[i]; // stop searching
268
- // }
269
- // });
270
-
271
- // We have all the Font details from Google API in object selectedFontDetails
272
- //console.log(selectedFontDetails);
273
-
274
-
275
- // We have all the font names in the an array allFonts
276
- //console.log( allFonts );
277
-
278
-
279
  // Creating a select
280
  var s = $('<select/>');
281
 
@@ -286,10 +265,6 @@ jQuery(function($) {
286
  $('#amp_font_selector-select').append($('<option value="'+ fontDetail +'" data-font-number="'+ i +'"> '+ fontDetail +' </option>'));
287
  $('#amp_font_selector_content_single-select').append($('<option value="'+ fontDetail +'" data-font-number="'+ i +'"> '+ fontDetail +' </option>'));
288
  }
289
-
290
- //console.log( values.length);
291
- //console.log( values[0].family );
292
- //console.table( values);
293
 
294
  $('#amp_font_selector-select, #amp_font_selector_content_single-select').on('change', function() {
295
  var select = $('option:selected', this).attr('data-font-number');
@@ -302,7 +277,6 @@ jQuery(function($) {
302
  $('#amp_font_type-select').html('<option></option>').trigger('change');
303
  }
304
 
305
- // console.log( data.items[select] );
306
 
307
  //if ( data.items[select] ) {
308
  $('#google_current_font_data').val( JSON.stringify(data.items[select]) );
@@ -333,11 +307,6 @@ jQuery(function($) {
333
 
334
  }
335
 
336
- function amp_font_selector_select_change(){
337
-
338
-
339
- }
340
-
341
  $(window).load(function() {
342
  if($("#google_font_api_key").length>0){
343
  $("#google_font_api_key").after("<input type='submit' value='Verify'>");
@@ -362,8 +331,7 @@ jQuery(function($) {
362
  // fontData = JSON.parse(fontData);
363
  console.log(fontData);
364
  if (! fontData.variants) {
365
- //$('.select2-search-choice').remove();
366
- //$('#amp_font_type-select').html('<option></option>');
367
 
368
  for (var i in fontData.variants) {
369
  $('#amp_font_type-select').append($("<option value='"+ fontData.variants[i] +"' > "+fontData.variants[i]+"</option>")).trigger('change');
@@ -382,7 +350,6 @@ jQuery(function($) {
382
  $('#amp_font_type-select option[value='+redux_data.amp_font_type[i]+']').attr('selected','selected').trigger('change');
383
  $('#amp_font_type_content_single-select option[value='+redux_data.amp_font_type[i]+']').attr('selected','selected').trigger('change');
384
  }
385
- //$('#amp_font_type-select').select2('val',redux_data.amp_font_type)
386
  }
387
  }
388
  });
@@ -457,6 +424,7 @@ var reduxOptionTab = function(){
457
  $(".redux-ampforwp-ext-activate").click(function(){
458
  var currentThis = $(this);
459
  var plugin_id = currentThis.attr("id");
 
460
  var newlicense = $('#redux_builder_amp_amp-license_'+plugin_id+'_license').val();
461
  var license = $('input[name="redux_builder_amp[amp-license]['+plugin_id+'][license]"]').val();
462
 
@@ -477,7 +445,8 @@ $(".redux-ampforwp-ext-activate").click(function(){
477
  license:license,
478
  item_name:item_name,
479
  store_url:store_url,
480
- plugin_active_path:plugin_active_path
 
481
  },
482
  dataType: 'json',
483
  success: function(response){
@@ -510,13 +479,16 @@ function deactivatelicence(){
510
  $(".redux-ampforwp-ext-deactivate").click(function(){
511
  var currentThis = $(this);
512
  var plugin_id = currentThis.attr("id");
 
513
  currentThis.html("Please Wait...");
514
  $deactivateConfirm = confirm("Are you sure you want to Deactivate ?");
515
  if($deactivateConfirm){
516
  $.ajax({
517
  url: ajaxurl,
518
  method: 'post',
519
- data: {action: 'ampforwp_deactivate_license', ampforwp_license_deactivate:plugin_id},
 
 
520
  dataType: 'json',
521
  success: function(response){
522
  currentThis.parents("li").find('.afw-license-response-message').remove();
@@ -603,67 +575,3 @@ function getQueryStringValue (key) {
603
  return decodeURIComponent(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + encodeURIComponent(key).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));
604
  }
605
 
606
-
607
- jQuery(document).ready(function($){
608
-
609
- $('.ampforwp-activation-call-module-upgrade').click(function(){
610
- if(pagenow == 'toplevel_page_amp_options' && $(this).hasClass('ampforwp-activation-call-module-upgrade')){// Check for current page
611
- var self = $(this);
612
- self.addClass('updating-message').removeClass('div.update-message');
613
- var activate = '';
614
- if($(this).attr('id')=='ampforwp-pwa-activation-call'){
615
- activate = '&activate=pwa';
616
- }else if($(this).attr('id')=='ampforwp-structure-data-activation-call'){
617
- activate = '&activate=structure_data';
618
- }
619
- self.find('p').text('Updating...');
620
- $.ajax({
621
- url: ajaxurl,
622
- type: 'post',
623
- data: 'action=ampforwp_enable_modules_upgread'+activate,
624
- dataType: 'json',
625
- success: function (response){
626
- if(response.status==200){
627
- self.removeClass('update-message updating-message')
628
- self.addClass('updated-message');
629
- var msgplug = '';
630
- if(self.attr('id')=='ampforwp-pwa-activation-call'){
631
- msgplug = 'PWA';
632
- }else if(self.attr('id')=='ampforwp-structure-data-activation-call'){
633
- msgplug = 'Structure Data';
634
- }
635
- self.find('p').html('<a href="'+response.redirect_url+'">Installed! - Let\'s Go to '+msgplug+' Settings</a>')
636
- self.removeClass('ampforwp-activation-call-module-upgrade');
637
- }else{
638
- alert(response.message)
639
- }
640
-
641
- }
642
- });
643
-
644
- }
645
- });
646
- //import default Settings
647
- $("#finalized-import-structure-data-from-amp").click(function(){
648
- var self = $(this);
649
- self.text("please wait...");
650
- $.ajax({
651
- url : ajaxurl,
652
- method : "POST",
653
- dataType: 'json',
654
- data: {
655
- action: "ampforwp_import_structure_data",
656
- from: 'ampforwp_basic_settings'
657
- },
658
- success: function(data){
659
- console.log(data);
660
- if(data.status==200){
661
- self.text("Migration completed please wait...");
662
- location.reload();
663
- }else{
664
- alert(data.message)
665
- }
666
- }
667
- });
668
- });
669
- });//(document).ready Closed
255
  allFonts.push({fontFamily: values[i].family });
256
  }
257
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
258
  // Creating a select
259
  var s = $('<select/>');
260
 
265
  $('#amp_font_selector-select').append($('<option value="'+ fontDetail +'" data-font-number="'+ i +'"> '+ fontDetail +' </option>'));
266
  $('#amp_font_selector_content_single-select').append($('<option value="'+ fontDetail +'" data-font-number="'+ i +'"> '+ fontDetail +' </option>'));
267
  }
 
 
 
 
268
 
269
  $('#amp_font_selector-select, #amp_font_selector_content_single-select').on('change', function() {
270
  var select = $('option:selected', this).attr('data-font-number');
277
  $('#amp_font_type-select').html('<option></option>').trigger('change');
278
  }
279
 
 
280
 
281
  //if ( data.items[select] ) {
282
  $('#google_current_font_data').val( JSON.stringify(data.items[select]) );
307
 
308
  }
309
 
 
 
 
 
 
310
  $(window).load(function() {
311
  if($("#google_font_api_key").length>0){
312
  $("#google_font_api_key").after("<input type='submit' value='Verify'>");
331
  // fontData = JSON.parse(fontData);
332
  console.log(fontData);
333
  if (! fontData.variants) {
334
+
 
335
 
336
  for (var i in fontData.variants) {
337
  $('#amp_font_type-select').append($("<option value='"+ fontData.variants[i] +"' > "+fontData.variants[i]+"</option>")).trigger('change');
350
  $('#amp_font_type-select option[value='+redux_data.amp_font_type[i]+']').attr('selected','selected').trigger('change');
351
  $('#amp_font_type_content_single-select option[value='+redux_data.amp_font_type[i]+']').attr('selected','selected').trigger('change');
352
  }
 
353
  }
354
  }
355
  });
424
  $(".redux-ampforwp-ext-activate").click(function(){
425
  var currentThis = $(this);
426
  var plugin_id = currentThis.attr("id");
427
+ var secure_nonce = currentThis.parents("li").attr('data-ext-secure');
428
  var newlicense = $('#redux_builder_amp_amp-license_'+plugin_id+'_license').val();
429
  var license = $('input[name="redux_builder_amp[amp-license]['+plugin_id+'][license]"]').val();
430
 
445
  license:license,
446
  item_name:item_name,
447
  store_url:store_url,
448
+ plugin_active_path:plugin_active_path,
449
+ verify_nonce: secure_nonce
450
  },
451
  dataType: 'json',
452
  success: function(response){
479
  $(".redux-ampforwp-ext-deactivate").click(function(){
480
  var currentThis = $(this);
481
  var plugin_id = currentThis.attr("id");
482
+ var secure_nonce = currentThis.parents("li").attr('data-ext-secure');
483
  currentThis.html("Please Wait...");
484
  $deactivateConfirm = confirm("Are you sure you want to Deactivate ?");
485
  if($deactivateConfirm){
486
  $.ajax({
487
  url: ajaxurl,
488
  method: 'post',
489
+ data: {action: 'ampforwp_deactivate_license', ampforwp_license_deactivate:plugin_id,
490
+ verify_nonce: secure_nonce
491
+ },
492
  dataType: 'json',
493
  success: function(response){
494
  currentThis.parents("li").find('.afw-license-response-message').remove();
575
  return decodeURIComponent(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + encodeURIComponent(key).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));
576
  }
577
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/change-log.php CHANGED
@@ -1,4 +1,9 @@
1
  <?php
 
 
 
 
 
2
  function ampforwp_strposOffset($search, $string, $offset)
3
  {
4
  /*** explode the string ***/
@@ -72,6 +77,6 @@ if(is_array($matches) && count($matches)>2){
72
  }
73
  }
74
 
75
- echo ampforwp_nl2p($readme,false);
76
 
77
  ?>
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+ // This file only loads once on welcome page
7
  function ampforwp_strposOffset($search, $string, $offset)
8
  {
9
  /*** explode the string ***/
77
  }
78
  }
79
 
80
+ echo ampforwp_wp_kses(ampforwp_nl2p($readme,false));
81
 
82
  ?>
includes/includes.php CHANGED
@@ -1,4 +1,9 @@
1
  <?php
 
 
 
 
 
2
  /* This file will contain all the extra code that works like a supporting.
3
  1. Register AMP menu
4
  1.1 AMP Header menu
@@ -12,7 +17,7 @@ if (! function_exists( 'ampforwp_menu') ) {
12
  function ampforwp_menu() {
13
  register_nav_menus(
14
  array(
15
- 'amp-menu' => __( 'AMP Menu','accelerated-mobile-pages' ),
16
  )
17
  );
18
  }
@@ -25,7 +30,7 @@ if ( ! function_exists( 'ampforwp_footermenu') ) {
25
  function ampforwp_footermenu() {
26
  register_nav_menus(
27
  array(
28
- 'amp-footer-menu' => __( 'AMP Footer Menu','accelerated-mobile-pages' ),
29
  )
30
  );
31
  }
@@ -50,4 +55,12 @@ function ampforwp_add_admin_styling(){
50
  wp_localize_script( 'ampforwp_admin_js', 'redux_data', $redux_builder_amp );
51
 
52
  wp_enqueue_script( 'ampforwp_admin_js' );
53
- } ?>
 
 
 
 
 
 
 
 
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
  /* This file will contain all the extra code that works like a supporting.
8
  1. Register AMP menu
9
  1.1 AMP Header menu
17
  function ampforwp_menu() {
18
  register_nav_menus(
19
  array(
20
+ 'amp-menu' => esc_html__( 'AMP Menu','accelerated-mobile-pages' ),
21
  )
22
  );
23
  }
30
  function ampforwp_footermenu() {
31
  register_nav_menus(
32
  array(
33
+ 'amp-footer-menu' => esc_html__( 'AMP Footer Menu','accelerated-mobile-pages' ),
34
  )
35
  );
36
  }
55
  wp_localize_script( 'ampforwp_admin_js', 'redux_data', $redux_builder_amp );
56
 
57
  wp_enqueue_script( 'ampforwp_admin_js' );
58
+ }
59
+
60
+ add_action( 'admin_enqueue_scripts', 'ampforwp_add_admin_upgread_script' );
61
+ function ampforwp_add_admin_upgread_script($hook){
62
+ if('toplevel_page_amp_options'==$hook){
63
+ wp_enqueue_script( 'ampforwp_admin_module_upgreade', untrailingslashit(AMPFORWP_PLUGIN_DIR_URI) . '/includes/module-upgrade.js', array( 'jquery', 'updates' ), AMPFORWP_VERSION, true );
64
+ }
65
+ }
66
+ ?>
includes/module-upgrade.js ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ jQuery(document).ready(function($){
3
+
4
+ $('.ampforwp-activation-call-module-upgrade').click(function(e){
5
+ if(pagenow == 'toplevel_page_amp_options' && $(this).hasClass('ampforwp-activation-call-module-upgrade')){// Check for current page
6
+ var self = $(this);
7
+ var nonce = self.attr('data-secure');
8
+ self.addClass('updating-message');
9
+ var currentId = self.attr('id');
10
+ var activate = '';
11
+ if(currentId=='ampforwp-pwa-activation-call'){
12
+ activate = '&activate=pwa';
13
+ }else if(currentId=='ampforwp-structure-data-activation-call'){
14
+ activate = '&activate=structure_data';
15
+ }
16
+ self.text( wp.updates.l10n.installing );
17
+ $.ajax({
18
+ url: ajaxurl,
19
+ type: 'post',
20
+ data: 'action=ampforwp_enable_modules_upgread'+activate+'&verify_nonce='+nonce,
21
+ dataType: 'json',
22
+ success: function (response){
23
+ if(response.status==200){
24
+ //To installation
25
+ wp.updates.installPlugin(
26
+ {
27
+ slug: response.slug,
28
+ success: function(pluginresponse){
29
+ //wp.updates.installPluginSuccess(pluginresponse);
30
+ wpActivateModulesUpgrage(pluginresponse.activateUrl, self, response, nonce)
31
+ }
32
+ }
33
+ );
34
+ }else{
35
+ alert(response.message)
36
+ }
37
+
38
+ }
39
+ })//ajaxComplete(wpActivateModulesUpgrage(response.path, self, response));
40
+
41
+ }
42
+ });
43
+
44
+ var wpActivateModulesUpgrage = function(url, self, response, nonce){
45
+ if (typeof url === 'undefined' || !url) {
46
+ return;
47
+ }
48
+ self.text( 'Activating...' );
49
+ jQuery.ajax(
50
+ {
51
+ async: true,
52
+ type: 'GET',
53
+ //data: dataString,
54
+ url: url,
55
+ success: function () {
56
+ self.removeClass('updating-message')
57
+ var msgplug = '';
58
+ if(self.attr('id')=='ampforwp-pwa-activation-call'){
59
+ msgplug = 'PWA';
60
+
61
+
62
+ self.html('<a href="'+response.redirect_url+'" style="text-decoration: none;color: #555;">Installed! - Let\'s Go to '+msgplug+' Settings</a>')
63
+ self.removeClass('ampforwp-activation-call-module-upgrade');
64
+ }else if(self.attr('id')=='ampforwp-structure-data-activation-call'){
65
+ msgplug = 'Structure Data';
66
+ self.text( 'Importing data...' );
67
+ //Import Data
68
+ jQuery.ajax({
69
+ url: ajaxurl,
70
+ type: 'post',
71
+ data: 'action=ampforwp_import_modules_scema&verify_nonce='+nonce,
72
+ success: function () {
73
+ self.html('<a href="'+response.redirect_url+'" style="text-decoration: none;color: #555;">Installed! - Let\'s Go to '+msgplug+' Settings</a>')
74
+ self.removeClass('ampforwp-activation-call-module-upgrade');
75
+ }
76
+ });
77
+ }
78
+ },
79
+ error: function (jqXHR, exception) {
80
+ var msg = '';
81
+ if (jqXHR.status === 0) {
82
+ msg = 'Not connect.\n Verify Network.';
83
+ } else if (jqXHR.status === 404) {
84
+ msg = 'Requested page not found. [404]';
85
+ } else if (jqXHR.status === 500) {
86
+ msg = 'Internal Server Error [500].';
87
+ } else if (exception === 'parsererror') {
88
+ msg = 'Requested JSON parse failed.';
89
+ } else if (exception === 'timeout') {
90
+ msg = 'Time out error.';
91
+ } else if (exception === 'abort') {
92
+ msg = 'Ajax request aborted.';
93
+ } else {
94
+ msg = 'Uncaught Error.\n' + jqXHR.responseText;
95
+ }
96
+ console.log(msg);
97
+ },
98
+ }
99
+ );
100
+ }
101
+
102
+ });//(document).ready Closed
includes/modules-upgrade.php CHANGED
@@ -1,100 +1,63 @@
1
  <?php
2
  // Exit if accessed directly.
3
  if ( ! defined( 'ABSPATH' ) ) exit;
4
- function ampforwp_enable_plugins_modules($plugins)
5
- {
6
- $args = array(
7
- 'path' => ABSPATH.'wp-content/plugins/',
8
- 'preserve_zip' => false
9
- );
10
- foreach($plugins as $plugin)
11
- {
12
- $is_downloaded = ampforwp_plugin_download($plugin['path'], $args['path'].$plugin['name'].'.zip');
13
- if($is_downloaded){
14
- ampforwp_plugin_unpack($args, $args['path'].$plugin['name'].'.zip');
15
- ampforwp_plugin_activate($plugin['install']);
16
- }
17
- }
18
- }
19
- function ampforwp_plugin_download($url, $path)
20
- {
21
-
22
- $response = wp_remote_get( $url );
23
- if ( is_array( $response ) ) {
24
- $body = $response['body']; // use the content
25
- if(file_put_contents($path, $body))
26
- return true;
27
- else
28
- return false;
29
- }else{
30
- return false;
31
- }
32
- }
33
- function ampforwp_plugin_unpack($args, $target)
34
- {
35
- if($zip = zip_open($target))
36
- {
37
- while($entry = zip_read($zip)){
38
- $is_file = substr(zip_entry_name($entry), -1) == '/' ? false : true;
39
- $file_path = $args['path'].zip_entry_name($entry);
40
- if($is_file){
41
- if(zip_entry_open($zip,$entry,"r")){
42
- $fstream = zip_entry_read($entry, zip_entry_filesize($entry));
43
- file_put_contents($file_path, $fstream );
44
- chmod($file_path, 0777);
45
- }
46
- zip_entry_close($entry);
47
- }
48
- else{
49
- if(zip_entry_name($entry)){
50
- mkdir($file_path);
51
- chmod($file_path, 0777);
52
- }
53
- }
54
- }
55
- zip_close($zip);
56
- }
57
- if($args['preserve_zip'] === false)
58
- {
59
- unlink($target);
60
- }
61
- }
62
- function ampforwp_plugin_activate($installer)
63
- {
64
- $current = get_option('active_plugins');
65
- $plugin = plugin_basename(trim($installer));
66
- if(!in_array($plugin, $current))
67
- {
68
- $current[] = $plugin;
69
- sort($current);
70
- do_action('activate_plugin', trim($plugin));
71
- update_option('active_plugins', $current);
72
- do_action('activate_'.trim($plugin));
73
- do_action('activated_plugin', trim($plugin));
74
- return true;
75
- }
76
- else{
77
- return false;
78
- }
79
- }
80
  add_action('wp_ajax_ampforwp_enable_modules_upgread', 'ampforwp_enable_modules_upgread');
81
  function ampforwp_enable_modules_upgread(){
 
 
 
 
 
 
 
 
 
82
  $plugins = array();
83
  $redirectSettingsUrl = '';
84
- $currentActivateModule = $_REQUEST['activate'];
85
  switch($currentActivateModule){
86
  case 'pwa':
 
 
 
 
 
 
 
 
 
 
87
  $plugins[] = array(
88
  'name' => 'pwa-for-wp',
89
- 'path' => 'https://downloads.wordpress.org/plugin/pwa-for-wp.zip',
 
90
  'install' => 'pwa-for-wp/pwa-for-wp.php',
91
  );
92
  $redirectSettingsUrl = admin_url('admin.php?page=pwaforwp&reference=ampforwp');
93
  break;
94
  case 'structure_data':
 
 
 
 
 
 
 
 
 
 
95
  $plugins[] = array(
96
  'name' => 'schema-and-structured-data-for-wp',
97
- 'path' => 'https://downloads.wordpress.org/plugin/schema-and-structured-data-for-wp.zip',
 
 
 
 
 
 
 
 
 
98
  'install' => 'schema-and-structured-data-for-wp/structured-data-for-wp.php',
99
  );
100
  $redirectSettingsUrl = admin_url('admin.php?page=structured_data_options&tab=general&reference=ampforwp');
@@ -104,22 +67,21 @@ function ampforwp_enable_modules_upgread(){
104
  break;
105
  }
106
  if(count($plugins)>0){
107
- ampforwp_enable_plugins_modules($plugins);
108
- //Do's After Activation of plugins
109
- if($currentActivateModule=='structure_data'){
110
- ampforwp_import_structure_data();
111
- }
112
- echo json_encode( array( "status"=>200, "message"=>"Module successfully Added",'redirect_url'=>$redirectSettingsUrl ) );
113
  }else{
114
  echo json_encode(array("status"=>300, "message"=>"Modules not Found"));
115
  }
116
  wp_die();
117
  }
118
 
119
-
120
  function ampforwp_admin_notice_module_reference_install() {
121
- $reference = isset($_GET['reference']) ? $_GET['reference'] : '';
122
- $page = isset($_GET['page']) ? $_GET['page'] : '';
 
 
 
 
 
123
  $message = '';
124
  if($reference=='ampforwp'){
125
  switch( $page ){
@@ -147,7 +109,17 @@ add_action( 'admin_notices', 'ampforwp_admin_notice_module_reference_install' );
147
  *
148
  */
149
  //On module upgrade
 
150
  function ampforwp_import_structure_data(){
 
 
 
 
 
 
 
 
 
151
  global $redux_builder_amp;
152
  if(get_option('ampforwp_structure_data_module_upgrade')=='migrated'){
153
  return false;
1
  <?php
2
  // Exit if accessed directly.
3
  if ( ! defined( 'ABSPATH' ) ) exit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  add_action('wp_ajax_ampforwp_enable_modules_upgread', 'ampforwp_enable_modules_upgread');
5
  function ampforwp_enable_modules_upgread(){
6
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_module' ) ) {
7
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
8
+ exit();
9
+ }
10
+ // Exit if the user does not have proper permissions
11
+ if(! current_user_can( 'install_plugins' ) ) {
12
+ echo json_encode(array("status"=>300,"message"=>'User Request not valid'));
13
+ exit();
14
+ }
15
  $plugins = array();
16
  $redirectSettingsUrl = '';
17
+ $currentActivateModule = sanitize_text_field( wp_unslash($_REQUEST['activate']));
18
  switch($currentActivateModule){
19
  case 'pwa':
20
+ $nonceUrl = add_query_arg(
21
+ array(
22
+ 'action' => 'activate',
23
+ 'plugin' => 'pwa-for-wp',
24
+ 'plugin_status' => 'all',
25
+ 'paged' => '1',
26
+ '_wpnonce' => wp_create_nonce( 'activate-plugin_pwa-for-wp' ),
27
+ ),
28
+ esc_url(network_admin_url( 'plugins.php' ))
29
+ );
30
  $plugins[] = array(
31
  'name' => 'pwa-for-wp',
32
+ 'path_' => 'https://downloads.wordpress.org/plugin/pwa-for-wp.zip',
33
+ 'path' => $nonceUrl,
34
  'install' => 'pwa-for-wp/pwa-for-wp.php',
35
  );
36
  $redirectSettingsUrl = admin_url('admin.php?page=pwaforwp&reference=ampforwp');
37
  break;
38
  case 'structure_data':
39
+ $nonceUrl = add_query_arg(
40
+ array(
41
+ 'action' => 'activate',
42
+ 'plugin' => 'schema-and-structured-data-for-wp',
43
+ 'plugin_status' => 'all',
44
+ 'paged' => '1',
45
+ '_wpnonce' => wp_create_nonce( 'schema-and-structured-data-for-wp' ),
46
+ ),
47
+ network_admin_url( 'plugins.php' )
48
+ );
49
  $plugins[] = array(
50
  'name' => 'schema-and-structured-data-for-wp',
51
+ 'path_' => 'https://downloads.wordpress.org/plugin/schema-and-structured-data-for-wp.zip',
52
+ 'path' => add_query_arg(
53
+ array(
54
+ 'action' => 'activate',
55
+ 'plugin' => 'schema-and-structured-data-for-wp',
56
+ 'plugin_status' => 'all',
57
+ 'paged' => '1',
58
+ '_wpnonce' => $nonceUrl,
59
+ )
60
+ ),
61
  'install' => 'schema-and-structured-data-for-wp/structured-data-for-wp.php',
62
  );
63
  $redirectSettingsUrl = admin_url('admin.php?page=structured_data_options&tab=general&reference=ampforwp');
67
  break;
68
  }
69
  if(count($plugins)>0){
70
+ echo json_encode( array( "status"=>200, "message"=>"Module successfully Added",'redirect_url'=>esc_url($redirectSettingsUrl) , "slug"=>$plugins[0]['name'], 'path'=> $plugins[0]['path'] ) );
 
 
 
 
 
71
  }else{
72
  echo json_encode(array("status"=>300, "message"=>"Modules not Found"));
73
  }
74
  wp_die();
75
  }
76
 
 
77
  function ampforwp_admin_notice_module_reference_install() {
78
+ // Exit if the user does not have proper permissions
79
+ if(! current_user_can( 'manage_options' ) && !is_admin() ) {
80
+ return ;
81
+ }
82
+
83
+ $reference = isset($_GET['reference']) ? sanitize_text_field( wp_unslash($_GET['reference'])) : '';
84
+ $page = isset($_GET['page']) ? sanitize_text_field( wp_unslash($_GET['page'])) : '';
85
  $message = '';
86
  if($reference=='ampforwp'){
87
  switch( $page ){
109
  *
110
  */
111
  //On module upgrade
112
+ add_action('wp_ajax_ampforwp_import_modules_scema', 'ampforwp_import_structure_data');
113
  function ampforwp_import_structure_data(){
114
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_module' ) ) {
115
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
116
+ exit();
117
+ }
118
+ // Exit if the user does not have proper permissions
119
+ if(! current_user_can( 'install_plugins' ) ) {
120
+ echo json_encode(array("status"=>300,"message"=>'User Request not valid'));
121
+ exit();
122
+ }
123
  global $redux_builder_amp;
124
  if(get_option('ampforwp_structure_data_module_upgrade')=='migrated'){
125
  return false;
includes/modules/ampforwp-blurb.php CHANGED
@@ -15,19 +15,15 @@
15
 
16
  parent::__construct(
17
  'ampforwp-blurb',
18
- __( 'AMP Blurb Module', 'accelerated-mobile-pages' ),
19
  array( //
20
  'classname' => 'ampforwp-blurb',
21
- 'description' => __( 'Displays Icon, headline and description. Best for showing features.', 'accelerated-mobile-pages' )
22
  )
23
  );
24
 
25
  add_action( 'admin_enqueue_scripts', array( $this, 'register_admin_scripts' ) );
26
 
27
- // Add static written Jquery
28
- // add_action( 'admin_footer', array( $this, 'footer_scritps') );
29
-
30
-
31
  } // end constructor
32
 
33
  /*--------------------------------------------------*/
@@ -51,13 +47,13 @@
51
  $features = ( ! empty( $instance['features'] ) ) ? $instance['features'] : array();
52
 
53
 
54
- echo $before_widget;
55
 
56
  $output .= '<div class="amp-wp-content amp_cb_module amp_cb_blurb">';
57
 
58
  if ( $title ) {
59
  $output .= '<div class="amp_module_title"><span>';
60
- $output .= $title;
61
  $output .= '</span></div>';
62
  }
63
 
@@ -66,11 +62,11 @@
66
  foreach( $features as $feature ) {
67
  $output .= '<div class="clmn">';
68
  if ( $feature['image'] ) {
69
- $output .= '<img src="'. $feature['image'] .'" height="80" width="80" alt="" />';
70
  }
71
  $output .= '<div class="amp_cb_content">';
72
- $output .= '<h4>'.$feature['title'].'</h4>';
73
- $output .= '<p>'.$feature['description'].'</p>';
74
  $output .= '</div>';
75
  $output .= '</div>';
76
  }
@@ -80,10 +76,10 @@
80
  $sanitized_output = $sanitizer->get_amp_content();
81
 
82
  if( $sanitized_output ) {
83
- echo $sanitized_output;
84
  }
85
 
86
- echo $after_widget;
87
 
88
  } // end widget
89
 
@@ -122,8 +118,8 @@
122
  );
123
 
124
  $title = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : ''; ?>
125
- <p><label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
126
- <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>" /></p>
127
 
128
 
129
  <?php
@@ -136,25 +132,25 @@
136
  foreach( $features as $feature ) {
137
  if ( isset( $feature['title'] ) || isset( $feature['description'] ) ) { ?>
138
  <div class="widget">
139
- <div class="widget-top"><div class="widget-title"><h3><?php echo $feature['title'];?><span class="in-widget-title"></span></h3></div>
140
  </div>
141
 
142
  <div class="widget-inside">
143
  <p>
144
- <label for="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][title]'; ?>"><?php _e( 'Title:' ); ?></label>
145
- <input class="widefat" id="<?php echo $this->get_field_id( 'features' ) .'-'. $c.'-title'; ?>" name="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][title]'; ?>" type="text" value="<?php echo $feature['title']; ?>" />
146
- <label for="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][description]'; ?>"><?php _e( 'Description:' ); ?></label>
147
 
148
- <textarea class="widefat" id="<?php echo $this->get_field_id( 'features' ) .'-'. $c.'-description'; ?>" name="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][description]'; ?>" rows="6" cols="50"><?php echo $feature['description']; ?></textarea> <span class="clear"></span>
149
  </p>
150
  <p>
151
- <label for="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][image]'; ?>"><?php _e( 'Image:' ); ?></label>
152
- <input type="button" class="select-img-<?php echo $c;?> button left" style="width:auto;" value="Select Image" onclick="ampSelectImage('<?php echo $c;?>');"/>
153
- <input type="button" style="display:none" name="removeimg" id="remove-img-<?php echo $c;?>" class="button button-secondary remove-img-button" data-count-type="<?php echo $c;?>" value="Remove Image" onclick="removeImage('<?php echo $c;?>')">
154
- <img src="<?php echo $instance['features']["$c"]['image'] ?>" class="preview-image block-image-<?php echo $c;?>" >
155
- <input type="hidden" id="amp-img-field-<?php echo $c;?>" class="img<?php echo $c;?>" style="width:auto;" name="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][image]'; ?>" id="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][image]';?>'" value="<?php echo $instance['features']["$c"]['image'] ?>" />
156
  </p>
157
- <p> <a class="ampforwp-blurb-remove delete button left"><?php _e('Remove Feature','accelerated-mobile-pages')?></a> </p>
158
  </div>
159
  </div>
160
  <?php
@@ -164,7 +160,7 @@
164
  } ?>
165
  </span>
166
 
167
- <a class="ampforwp-blurb-add button left"> <?php _e('Add Feature','accelerated-mobile-pages'); ?> </a>
168
 
169
  <?php
170
 
@@ -191,6 +187,7 @@
191
  } // end class
192
 
193
 
194
- add_action( 'widgets_init', function(){
 
195
  register_widget( 'AMPFORWP_Blurb_Widget' );
196
- });
15
 
16
  parent::__construct(
17
  'ampforwp-blurb',
18
+ esc_html__( 'AMP Blurb Module', 'accelerated-mobile-pages' ),
19
  array( //
20
  'classname' => 'ampforwp-blurb',
21
+ 'description' => esc_html__( 'Displays Icon, headline and description. Best for showing features.', 'accelerated-mobile-pages' )
22
  )
23
  );
24
 
25
  add_action( 'admin_enqueue_scripts', array( $this, 'register_admin_scripts' ) );
26
 
 
 
 
 
27
  } // end constructor
28
 
29
  /*--------------------------------------------------*/
47
  $features = ( ! empty( $instance['features'] ) ) ? $instance['features'] : array();
48
 
49
 
50
+ echo esc_html($before_widget);
51
 
52
  $output .= '<div class="amp-wp-content amp_cb_module amp_cb_blurb">';
53
 
54
  if ( $title ) {
55
  $output .= '<div class="amp_module_title"><span>';
56
+ $output .= esc_html( $title );
57
  $output .= '</span></div>';
58
  }
59
 
62
  foreach( $features as $feature ) {
63
  $output .= '<div class="clmn">';
64
  if ( $feature['image'] ) {
65
+ $output .= '<img src="'. esc_url($feature['image']) .'" height="80" width="80" alt="" />';
66
  }
67
  $output .= '<div class="amp_cb_content">';
68
+ $output .= '<h4>'.esc_html( $feature['title']).'</h4>';
69
+ $output .= '<p>' .esc_html( $feature['description']).'</p>';
70
  $output .= '</div>';
71
  $output .= '</div>';
72
  }
76
  $sanitized_output = $sanitizer->get_amp_content();
77
 
78
  if( $sanitized_output ) {
79
+ echo $sanitized_output; // amphtml content, no kses
80
  }
81
 
82
+ echo esc_html($after_widget);
83
 
84
  } // end widget
85
 
118
  );
119
 
120
  $title = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : ''; ?>
121
+ <p><label for="<?php echo esc_attr($this->get_field_id( 'title' )); ?>"><?php esc_attr_e( 'Title:' ); ?></label>
122
+ <input class="widefat" id="<?php echo esc_attr($this->get_field_id( 'title' )); ?>" name="<?php echo esc_attr($this->get_field_name( 'title' )); ?>" type="text" value="<?php echo esc_attr($title); ?>" /></p>
123
 
124
 
125
  <?php
132
  foreach( $features as $feature ) {
133
  if ( isset( $feature['title'] ) || isset( $feature['description'] ) ) { ?>
134
  <div class="widget">
135
+ <div class="widget-top"><div class="widget-title"><h3><?php echo esc_attr($feature['title']);?><span class="in-widget-title"></span></h3></div>
136
  </div>
137
 
138
  <div class="widget-inside">
139
  <p>
140
+ <label for="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][title]'; ?>"><?php esc_attr_e( 'Title:' ); ?></label>
141
+ <input class="widefat" id="<?php echo esc_attr($this->get_field_id( 'features' )) .'-'. $c.'-title'; ?>" name="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][title]'; ?>" type="text" value="<?php echo esc_attr($feature['title']); ?>" />
142
+ <label for="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][description]'; ?>"><?php esc_attr_e( 'Description:' ); ?></label>
143
 
144
+ <textarea class="widefat" id="<?php echo esc_attr($this->get_field_id( 'features' )) .'-'. $c.'-description'; ?>" name="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][description]'; ?>" rows="6" cols="50"><?php echo esc_attr($feature['description']); ?></textarea> <span class="clear"></span>
145
  </p>
146
  <p>
147
+ <label for="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][image]'; ?>"><?php esc_attr_e( 'Image:' ); ?></label>
148
+ <input type="button" class="select-img-<?php echo esc_attr($c);?> button left" style="width:auto;" value="Select Image" onclick="ampSelectImage('<?php echo esc_attr($c);?>');"/>
149
+ <input type="button" style="display:none" name="removeimg" id="remove-img-<?php echo esc_attr($c);?>" class="button button-secondary remove-img-button" data-count-type="<?php echo esc_attr($c);?>" value="Remove Image" onclick="removeImage('<?php echo esc_attr($c);?>')">
150
+ <img src="<?php echo esc_url($instance['features']["$c"]['image']) ?>" class="preview-image block-image-<?php echo esc_attr($c);?>" >
151
+ <input type="hidden" id="amp-img-field-<?php echo esc_attr($c);?>" class="img<?php echo esc_attr($c);?>" style="width:auto;" name="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][image]'; ?>" id="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][image]';?>'" value="<?php echo esc_attr($instance['features']["$c"]['image']) ?>" />
152
  </p>
153
+ <p> <a class="ampforwp-blurb-remove delete button left"><?php esc_attr_e('Remove Feature','accelerated-mobile-pages')?></a> </p>
154
  </div>
155
  </div>
156
  <?php
160
  } ?>
161
  </span>
162
 
163
+ <a class="ampforwp-blurb-add button left"> <?php esc_attr_e('Add Feature','accelerated-mobile-pages'); ?> </a>
164
 
165
  <?php
166
 
187
  } // end class
188
 
189
 
190
+ add_action( 'widgets_init', 'ampforwp_register_blurb_widget' );
191
+ function ampforwp_register_blurb_widget(){
192
  register_widget( 'AMPFORWP_Blurb_Widget' );
193
+ }
includes/modules/ampforwp-button.php CHANGED
@@ -16,10 +16,10 @@
16
 
17
  parent::__construct(
18
  'ampforwp-button',
19
- __( 'AMP Button Module', 'accelerated-mobile-pages' ),
20
  array(
21
  'classname' => 'ampforwp-button',
22
- 'description' => __( 'Displays Button with text and link options.', 'accelerated-mobile-pages' )
23
  )
24
  );
25
 
@@ -47,14 +47,11 @@
47
 
48
  extract( $args, EXTR_SKIP );
49
 
50
- $title = ( ! empty( $instance['title'] ) ) ? $instance['title'] : __( 'Classes' );
51
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
52
 
53
  $features = ( ! empty( $instance['features'] ) ) ? $instance['features'] : array();
54
 
55
-
56
-
57
- echo $before_widget;
58
  $output .= '<div class="amp-wp-content amp_cb_module amp_cb_btn">';
59
 
60
  foreach( $features as $feature ) {
@@ -73,7 +70,7 @@
73
  $size = "l_btn";
74
  }
75
  //Corrected the URL in button module and breaking of desing and link issue #951 & #972
76
- $output .= '<a href="'.esc_url($feature['url']).'" class="' . $size . '" target="' . $target . '" >'. $feature['title'] .'</a>';
77
  }
78
  $output .= '</div>';
79
 
@@ -82,11 +79,9 @@
82
  $sanitized_output = $sanitizer->get_amp_content();
83
 
84
  if( $sanitized_output ) {
85
- echo $sanitized_output;
86
  }
87
 
88
- echo $after_widget;
89
-
90
  } // end widget
91
 
92
  /**
@@ -139,39 +134,39 @@
139
  foreach( $features as $feature ) {
140
  if ( isset( $feature['title'] ) || isset( $feature['description'] ) ) { ?>
141
  <div class="widget">
142
- <div class="widget-top"><div class="widget-title"><h3><?php echo $feature['title'];?><span class="in-widget-title"></span></h3></div>
143
  </div>
144
 
145
  <div class="widget-inside">
146
  <div class="widget-content">
147
  <p>
148
- <label for="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][title]'; ?>"><?php _e( 'Button Text:' ); ?></label>
149
- <input class="widefat" id="<?php echo $this->get_field_id( 'features' ) .'-'. $c.'-title'; ?>" name="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][title]'; ?>" type="text" value="<?php echo $feature['title']; ?>" /> </p>
150
 
151
- <p><label for="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][url]'; ?>"><?php _e( 'Url:' ); ?></label>
152
- <input class="widefat" id="<?php echo $this->get_field_id( 'features' ) .'-'. $c.'-url'; ?>" name="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][url]'; ?>" type="text" value="<?php echo $feature['url']; ?>" />
153
  </p>
154
 
155
 
156
- <p><label><?php _e('URL Target:'); ?> </label><br />
157
- <label class="radio_label" for="<?php echo $this->get_field_id('id') . "-on"; ?>"><?php _e('New Tab'); ?> </label>
158
- <input class="widefat" id="<?php echo $this->get_field_id('id') . "-on"; ?>" name="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][radio]'; ?>" type="radio" value="radio-on" <?php if ( $feature['radio'] == 'radio-on'): ?> checked <?php endif ?> />
159
 
160
- <label class="radio_label" for="<?php echo $this->get_field_id('id') . "-off"; ?>"> <?php _e('Current'); ?> </label>
161
 
162
- <input class="widefat" id="<?php echo $this->get_field_id('id') . "-off"; ?>" name="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][radio]'; ?>" type="radio" value="radio-off" <?php if ( $feature['radio'] == 'radio-off' || $feature['radio'] == ''): ?> checked <?php endif ?> />
163
  </p>
164
  <!-- done -->
165
  <p>
166
- <label for="<?php echo $this->get_field_id('id') . "-size"; ?>"> <?php _e('Select Size:'); ?> </label>
167
- <select id="<?php echo $this->get_field_id('id') . "-size"; ?>" class="widefat" name="<?php echo $this->get_field_name( 'features' ) . '['.$c.'][size]'; ?>">
168
  <option value="1" <?php selected( $feature['size'], 1 ); ?>>Small</option>
169
  <option value="2" <?php selected( $feature['size'], 2 ); ?>>Medium</option>
170
  <option value="3" <?php selected( $feature['size'], 3 ); ?>>Large</option>
171
  </select>
172
  </p>
173
 
174
- <p> <a class="ampforwp-button-remove delete button left"><?php _e('Remove Feature','accelerated-mobile-pages')?></a> </p>
175
  </div>
176
  </div>
177
  </div>
@@ -182,8 +177,7 @@
182
  } ?>
183
  </span>
184
 
185
- <a class="ampforwp-button-add button left"> <?php _e('Add Feature','accelerated-mobile-pages'); ?> </a>
186
- <p> </p>
187
  <?php
188
 
189
  } // end form
@@ -192,61 +186,22 @@
192
  /* Public Functions
193
  /*--------------------------------------------------*/
194
 
195
- /**
196
- * Fired when the plugin is activated.
197
- *
198
- * @param boolean $network_wide True if WPMU superadmin uses "Network Activate" action, false if WPMU is disabled or plugin is activated on an individual blog.
199
- */
200
- public function activate( $network_wide ) {
201
-
202
- } // end activate
203
-
204
- /**
205
- * Fired when the plugin is deactivated.
206
- *
207
- * @param boolean $network_wide True if WPMU superadmin uses "Network Activate" action, false if WPMU is disabled or plugin is activated on an individual blog
208
- */
209
- public function deactivate( $network_wide ) {
210
-
211
- } // end deactivate
212
-
213
- /**
214
- * Registers and enqueues admin-specific styles.
215
- */
216
- public function register_admin_styles() {
217
-
218
- } // end register_admin_styles
219
-
220
  /**
221
  * Registers and enqueues admin-specific JavaScript.
222
  */
223
  public function register_admin_scripts() {
224
-
225
  wp_enqueue_script( 'ampforwp-builder-script', plugins_url('/modules/js/amp.js' , dirname(__FILE__) ) , array( 'jquery' ), false, true );
226
 
227
  } // end register_admin_scripts
228
 
229
  public function footer_scritps() { ?>
230
- <style>.radio_label{}</style>
231
- <?php }
232
-
233
- /**
234
- * Registers and enqueues widget-specific styles.
235
- */
236
- public function register_widget_styles() {
237
-
238
- } // end register_widget_styles
239
-
240
- /**
241
- * Registers and enqueues widget-specific scripts.
242
- */
243
- public function register_widget_scripts() {
244
-
245
- } // end register_widget_scripts
246
 
247
  } // end class
248
 
249
 
250
- add_action( 'widgets_init', function(){
 
251
  register_widget( 'AMPFORWP_Button_Widget' );
252
- });
16
 
17
  parent::__construct(
18
  'ampforwp-button',
19
+ esc_html__( 'AMP Button Module', 'accelerated-mobile-pages' ),
20
  array(
21
  'classname' => 'ampforwp-button',
22
+ 'description' => esc_html__( 'Displays Button with text and link options.', 'accelerated-mobile-pages' )
23
  )
24
  );
25
 
47
 
48
  extract( $args, EXTR_SKIP );
49
 
50
+ $title = ( ! empty( $instance['title'] ) ) ? $instance['title'] : esc_html__( 'Classes', 'accelerated-mobile-pages' );
51
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
52
 
53
  $features = ( ! empty( $instance['features'] ) ) ? $instance['features'] : array();
54
 
 
 
 
55
  $output .= '<div class="amp-wp-content amp_cb_module amp_cb_btn">';
56
 
57
  foreach( $features as $feature ) {
70
  $size = "l_btn";
71
  }
72
  //Corrected the URL in button module and breaking of desing and link issue #951 & #972
73
+ $output .= '<a href="'.esc_url($feature['url']).'" class="' . esc_attr($size) . '" target="' . esc_attr($target) . '" >'. esc_html($feature['title']) .'</a>';
74
  }
75
  $output .= '</div>';
76
 
79
  $sanitized_output = $sanitizer->get_amp_content();
80
 
81
  if( $sanitized_output ) {
82
+ echo $sanitized_output; // amphtml content, no kses
83
  }
84
 
 
 
85
  } // end widget
86
 
87
  /**
134
  foreach( $features as $feature ) {
135
  if ( isset( $feature['title'] ) || isset( $feature['description'] ) ) { ?>
136
  <div class="widget">
137
+ <div class="widget-top"><div class="widget-title"><h3><?php echo esc_attr($feature['title']);?><span class="in-widget-title"></span></h3></div>
138
  </div>
139
 
140
  <div class="widget-inside">
141
  <div class="widget-content">
142
  <p>
143
+ <label for="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][title]'; ?>"><?php esc_attr_e( 'Button Text:' ); ?></label>
144
+ <input class="widefat" id="<?php echo esc_attr($this->get_field_id( 'features' )) .'-'. $c.'-title'; ?>" name="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][title]'; ?>" type="text" value="<?php echo esc_attr($feature['title']); ?>" /> </p>
145
 
146
+ <p><label for="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][url]'; ?>"><?php esc_attr_e( 'Url:' ); ?></label>
147
+ <input class="widefat" id="<?php echo esc_attr($this->get_field_id( 'features' )) .'-'. $c.'-url'; ?>" name="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][url]'; ?>" type="text" value="<?php echo esc_attr($feature['url']); ?>" />
148
  </p>
149
 
150
 
151
+ <p><label><?php esc_attr_e('URL Target:'); ?> </label><br />
152
+ <label class="radio_label" for="<?php echo esc_attr($this->get_field_id('id')) . "-on"; ?>"><?php esc_attr_e('New Tab'); ?> </label>
153
+ <input class="widefat" id="<?php echo esc_attr($this->get_field_id('id')) . "-on"; ?>" name="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][radio]'; ?>" type="radio" value="radio-on" <?php if ( $feature['radio'] == 'radio-on'): ?> checked <?php endif ?> />
154
 
155
+ <label class="radio_label" for="<?php echo esc_attr($this->get_field_id('id')) . "-off"; ?>"> <?php esc_attr_e('Current'); ?> </label>
156
 
157
+ <input class="widefat" id="<?php echo esc_attr($this->get_field_id('id') . "-off"); ?>" name="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][radio]'; ?>" type="radio" value="radio-off" <?php if ( $feature['radio'] == 'radio-off' || $feature['radio'] == ''): ?> checked <?php endif ?> />
158
  </p>
159
  <!-- done -->
160
  <p>
161
+ <label for="<?php echo esc_attr($this->get_field_id('id')) . "-size"; ?>"> <?php esc_attr_e('Select Size:'); ?> </label>
162
+ <select id="<?php echo esc_attr($this->get_field_id('id')) . "-size"; ?>" class="widefat" name="<?php echo esc_attr($this->get_field_name( 'features' )) . '['.$c.'][size]'; ?>">
163
  <option value="1" <?php selected( $feature['size'], 1 ); ?>>Small</option>
164
  <option value="2" <?php selected( $feature['size'], 2 ); ?>>Medium</option>
165
  <option value="3" <?php selected( $feature['size'], 3 ); ?>>Large</option>
166
  </select>
167
  </p>
168
 
169
+ <p> <a class="ampforwp-button-remove delete button left"><?php esc_attr_e('Remove Feature','accelerated-mobile-pages')?></a> </p>
170
  </div>
171
  </div>
172
  </div>
177
  } ?>
178
  </span>
179
 
180
+ <a class="ampforwp-button-add button left"> <?php esc_attr_e('Add Feature','accelerated-mobile-pages'); ?> </a><p> </p>
 
181
  <?php
182
 
183
  } // end form
186
  /* Public Functions
187
  /*--------------------------------------------------*/
188
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189
  /**
190
  * Registers and enqueues admin-specific JavaScript.
191
  */
192
  public function register_admin_scripts() {
 
193
  wp_enqueue_script( 'ampforwp-builder-script', plugins_url('/modules/js/amp.js' , dirname(__FILE__) ) , array( 'jquery' ), false, true );
194
 
195
  } // end register_admin_scripts
196
 
197
  public function footer_scritps() { ?>
198
+ <style>.radio_label{}</style> <?php
199
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
 
201
  } // end class
202
 
203
 
204
+ add_action( 'widgets_init', 'ampforwp_register_button_widget');
205
+ function ampforwp_register_button_widget(){
206
  register_widget( 'AMPFORWP_Button_Widget' );
207
+ }
includes/newsletter.php CHANGED
@@ -1,4 +1,10 @@
1
- <?php class ampforwp_pointers {
 
 
 
 
 
 
2
  const DISPLAY_VERSION = 'v1.0';
3
  function __construct () {
4
  add_action('admin_enqueue_scripts', array($this, 'admin_enqueue_scripts'));
@@ -22,7 +28,7 @@
22
  global $pagenow;
23
  global $current_user;
24
  $tour = array ();
25
- $tab = isset($_GET['tab']) ? $_GET['tab'] : '';
26
  $function = '';
27
  $button2 = '';
28
  $options = array ();
@@ -34,43 +40,14 @@
34
  $file_error = true;
35
 
36
  $id = '#toplevel_page_amp_options'; // Define ID used on page html element where we want to display pointer
37
- $content = '<h3>' . sprintf (__('You are awesome for using AMP!', 'accelerated-mobile-pages'), self::DISPLAY_VERSION) . '</h3>';
38
- $content .= __('<p>Do you want the latest on <b>AMP update</b> before others and some best resources on AMP in a single email? - Free just for users of AMP!</p>', 'accelerated-mobile-pages');
39
- $content .= __('
40
- <!-- Begin MailChimp Signup Form -->
41
- <style type="text/css">
42
- .wp-pointer-buttons{ padding:0; overflow: hidden; }
43
- .wp-pointer-content .button-secondary{ left: -25px;background: transparent;top: 5px; border: 0;position: relative; padding: 0; box-shadow: none;margin: 0;color: #0085ba;} .wp-pointer-content .button-primary{ display:none} #mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; }
44
- </style>
45
- <div id="mc_embed_signup">
46
- <form action="//app.mailerlite.com/webforms/submit/d3w0e1" data-id="258182" data-code="d3w0e1" method="POST" target="_blank">
47
- <div id="mc_embed_signup_scroll">
48
- <div class="mc-field-group" style=" margin-left: 15px; width: 195px; float: left;">
49
- <input type="text" name="fields[name]" class="form-control" placeholder="Name" hidden value="' . esc_attr( $current_user->display_name ) . '" style="display:none">
50
-
51
- <input type="text" value="' . esc_attr( $current_user->user_email ) . '" name="fields[email]" class="form-control" placeholder="Email*" style=" width: 180px; padding: 6px 5px;">
52
-
53
- <input type="text" name="fields[company]" class="form-control" placeholder="Website" hidden style=" display:none; width: 168px; padding: 6px 5px;" value="' . esc_attr( get_home_url() ) . '">
54
 
55
- <input type="hidden" name="ml-submit" value="1" />
56
- </div>
57
- <div id="mce-responses">
58
- <div class="response" id="mce-error-response" style="display:none"></div>
59
- <div class="response" id="mce-success-response" style="display:none"></div>
60
- </div>
61
- <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
62
- <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_a631df13442f19caede5a5baf_c9a71edce6" tabindex="-1" value=""></div>
63
- <input type="submit" value="Subscribe" name="subscribe" id="pointer-close" class="button mc-newsletter-sent" style=" background: #0085ba; border-color: #006799; padding: 0px 16px; text-shadow: 0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799; height: 30px; margin-top: 1px; color: #fff; box-shadow: 0 1px 0 #006799;">
64
- </div>
65
- </form>
66
- </div>','accelerated-mobile-pages');
67
  $options = array (
68
  'content' => $content,
69
  'position' => array ('edge' => 'left', 'align' => 'left')
70
  );
71
  }
72
  if ($show_pointer) {
73
- $this->ampforwp_pointer_script ($id, $options, __('No Thanks', 'accelerated-mobile-pages'), $button2, $function);
74
  }
75
  }
76
  function get_admin_url($page, $tab) {
@@ -85,7 +62,7 @@
85
  var wp_pointers_tour_opts = <?php echo json_encode ($options); ?>, setup;
86
  wp_pointers_tour_opts = $.extend (wp_pointers_tour_opts, {
87
  buttons: function (event, t) {
88
- button= jQuery ('<a id="pointer-close" class="button-secondary">' + '<?php echo $button1; ?>' + '</a>');
89
  button_2= jQuery ('#pointer-close.button');
90
  button.bind ('click.pointer', function () {
91
  t.element.pointer ('close');
@@ -103,9 +80,9 @@
103
  }
104
  });
105
  setup = function () {
106
- $('<?php echo $id; ?>').pointer(wp_pointers_tour_opts).pointer('open');
107
  <?php if ($button2) { ?>
108
- jQuery ('#pointer-close').after ('<a id="pointer-primary" class="button-primary">' + '<?php echo $button2; ?>' + '</a>');
109
  jQuery ('#pointer-primary').click (function () {
110
  <?php echo $function; ?>
111
  });
1
+ <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ class ampforwp_pointers {
8
  const DISPLAY_VERSION = 'v1.0';
9
  function __construct () {
10
  add_action('admin_enqueue_scripts', array($this, 'admin_enqueue_scripts'));
28
  global $pagenow;
29
  global $current_user;
30
  $tour = array ();
31
+ $tab = isset($_GET['tab']) ? sanitize_text_field( wp_unslash($_GET['tab'])) : '';
32
  $function = '';
33
  $button2 = '';
34
  $options = array ();
40
  $file_error = true;
41
 
42
  $id = '#toplevel_page_amp_options'; // Define ID used on page html element where we want to display pointer
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  $options = array (
45
  'content' => $content,
46
  'position' => array ('edge' => 'left', 'align' => 'left')
47
  );
48
  }
49
  if ($show_pointer) {
50
+ $this->ampforwp_pointer_script ($id, $options, esc_html__('No Thanks', 'accelerated-mobile-pages'), $button2, $function);
51
  }
52
  }
53
  function get_admin_url($page, $tab) {
62
  var wp_pointers_tour_opts = <?php echo json_encode ($options); ?>, setup;
63
  wp_pointers_tour_opts = $.extend (wp_pointers_tour_opts, {
64
  buttons: function (event, t) {
65
+ button= jQuery ('<a id="pointer-close" class="button-secondary">' + '<?php echo wp_kses_post($button1); ?>' + '</a>');
66
  button_2= jQuery ('#pointer-close.button');
67
  button.bind ('click.pointer', function () {
68
  t.element.pointer ('close');
80
  }
81
  });
82
  setup = function () {
83
+ $('<?php echo esc_attr($id); ?>').pointer(wp_pointers_tour_opts).pointer('open');
84
  <?php if ($button2) { ?>
85
+ jQuery ('#pointer-close').after ('<a id="pointer-primary" class="button-primary">' + '<?php echo wp_kses_post($button2); ?>' + '</a>');
86
  jQuery ('#pointer-primary').click (function () {
87
  <?php echo $function; ?>
88
  });
includes/options/admin-config.php CHANGED
@@ -444,7 +444,7 @@ foreach ($extension_listing_array as $key => $extension) {
444
  $ampforwp_extension_list_html .= "</ul><h3 style='display:block;'>All Extensions</h3><ul>";
445
  $secondPageClickClass = 'goToSecondPage';
446
  }
447
- $ampforwp_extension_list_html .= '<li class="first '.$currentStatus.' '.$secondPageClickClass.'" data-ext-details=\''.json_encode($extension).'\'>
448
  '.$onclickUrl.'
449
  <div class="align_left"><img src="'.$extension['img_src'].'" /></div>
450
  <div class="extension_desc">
@@ -977,7 +977,7 @@ $eu_iso_codes = array(
977
 
978
  // All the possible arguments for Redux.
979
  //$amp_redux_header = '<span id="name"><span style="color: #4dbefa;">U</span>ltimate <span style="color: #4dbefa;">W</span>idgets</span>';
980
- $proDetailsProvide = '<a class="premium_features_btn_txt" href="https://ampforwp.com/membership/#utm_source=options-panel&utm_medium=view_pro_features_btn&utm_campaign=AMP%20Plugin" target="_blank">'.__('Get more out of AMP','accelerated-mobile-pages').'</a> <a class="premium_features_btn" href="https://ampforwp.com/membership/#utm_source=options-panel&utm_medium=view_pro_features_btn&utm_campaign=AMP%20Plugin" target="_blank">Get PRO Version</a> ';
981
  if($ampforwp_nameOfUser!=""){
982
  $proDetailsProvide = "<span class='extension-menu-call'><span class='activated-plugins'>Hello, ".$ampforwp_nameOfUser."</span> <a class='' href='".admin_url('admin.php?page=amp_options&tabid=opt-go-premium')."'><i class='dashicons-before dashicons-admin-generic'></i></a></span>";
983
  }elseif($ampforwp_is_productActivated){
@@ -986,11 +986,11 @@ if($ampforwp_nameOfUser!=""){
986
  $args = array(
987
  // TYPICAL -> Change these values as you need/desire
988
  'opt_name' => 'redux_builder_amp', // This is where your data is stored in the database and also becomes your global variable name.
989
- 'display_name' => __( 'AMPforWP Options','accelerated-mobile-pages' ), // Name that appears at the top of your panel
990
  'menu_type' => 'menu', //Specify if the admin menu should appear or not. Options: menu or submenu (Under appearance only)
991
  'allow_sub_menu' => true, // Show the sections below the admin menu item or not
992
- 'menu_title' => __( 'AMP', 'accelerated-mobile-pages' ),
993
- 'page_title' => __('Accelerated Mobile Pages Options','accelerated-mobile-pages'),
994
  'display_version' => AMPFORWP_VERSION,
995
  'update_notice' => false,
996
  'intro_text' => $proDetailsProvide,
@@ -1032,19 +1032,19 @@ Redux::setArgs( "redux_builder_amp", $args );
1032
  $tabs = array(
1033
  array(
1034
  'id' => 'redux-help-tab-1',
1035
- 'title' => __( 'Theme Information 1', 'accelerated-mobile-pages' ),
1036
- 'content' => __( '<p>This is the tab content, HTML is allowed.</p>', 'accelerated-mobile-pages' )
1037
  ),
1038
  array(
1039
  'id' => 'redux-help-tab-2',
1040
- 'title' => __( 'Theme Information 2', 'accelerated-mobile-pages' ),
1041
- 'content' => __( '<p>This is the tab content, HTML is allowed.</p>', 'accelerated-mobile-pages' )
1042
  )
1043
  );
1044
  Redux::setHelpTab( $opt_name, $tabs );
1045
 
1046
  // Set the help sidebar
1047
- $content = __( '<p>This is the sidebar content, HTML is allowed.</p>', 'accelerated-mobile-pages' );
1048
  Redux::setHelpSidebar( $opt_name, $content );
1049
 
1050
 
@@ -1059,66 +1059,65 @@ Redux::setArgs( "redux_builder_amp", $args );
1059
  */
1060
 
1061
  Redux::setSection( $opt_name, array(
1062
- 'title' => __( 'Basic Field', 'accelerated-mobile-pages' ),
1063
  'id' => 'basic',
1064
- 'desc' => __( 'Basic field with no subsections.', 'accelerated-mobile-pages' ),
1065
  'icon' => 'el el-home',
1066
  'fields' => array(
1067
  array(
1068
  'id' => 'opt-blank',
1069
- 'title' => __( 'Example Text', 'accelerated-mobile-pages' ),
1070
- 'desc' => __( 'Example description.', 'accelerated-mobile-pages' ),
1071
- 'tooltip-subtitle' => __( 'Example subtitle.', 'accelerated-mobile-pages' ),
1072
  )
1073
  )
1074
  ) );
1075
 
1076
  Redux::setSection( $opt_name, array(
1077
- 'title' => __( 'Settings', 'accelerated-mobile-pages' ),
1078
  'id' => 'basic',
1079
- 'desc' => __( '<div class="amp-faq">Thank you for using Accelerated Mobile Pages plugin. '. ' ' .
1080
-
1081
- sprintf( __( ' <h2 style="width: 150px;float: right;
1082
  padding: 8px 11px;background: #4CAF50;
1083
  font-size: 13px;margin: -40px 0 0 10px;
1084
- border-radius: 5px;line-height: 22px;position:relative;top:30px"><a style="color: #fff;text-decoration: none;" href="https://wordpress.org/support/view/plugin-reviews/accelerated-mobile-pages?rate=5#postform">Like this plugin? <br /> Leave a 5 Star Rating</a></h2>We are actively working on updating the plugin. We have built user friendly options which allows you to make changes on your AMP version.', 'accelerated-mobile-pages' ), 'accelerated-mobile-pages' )
1085
  . '<div style="width:100%;margin:20px 0px 10px 0px" class="getstarted_wrapper">
1086
  <div class="getstarted_options">
1087
- <p><b>Getting Started</b></p>
1088
  <ul class="getstarted_ul">
1089
- <li><a href="https://ampforwp.com/tutorials/article-categories/installation-updating/" target="_blank">Installation & Setup</a></li>
1090
- <li><a href="https://ampforwp.com/tutorials/article-categories/settings-options/" target="_blank">Settings & Options</a></li>
1091
- <li><a href="https://ampforwp.com/tutorials/article-categories/setup-amp/" target="_blank">Setup AMP</a></li>
1092
- <li><a href="https://ampforwp.com/tutorials/article-categories/page-builder/" target="_blank">Page Builder</a></li>
1093
  </ul>
1094
  </div>
1095
  <div class="getstarted_options">
1096
- <p><b>Useful Links</b></p>
1097
  <ul class="getstarted_ul">
1098
- <li><a href="https://ampforwp.com/tutorials/article-categories/extension/" target="_blank">Extensions & Themes Docs</a></li>
1099
- <li><a href="https://ampforwp.com/tutorials/article-categories/extending/" target="_blank">Developers Docs</a></li>
1100
- <li><a href="https://ampforwp.com/amp-theme-framework/" target="_blank">Create a Custom Theme for AMP</a></li>
1101
- <li><a href="https://ampforwp.com/tutorials/article-categories/how-to/" target="_blank">General How To\'s</a></li>
1102
  </ul>
1103
  </div>
1104
  <div class="getstarted_options" style="padding-bottom: 33px;width: 16%;" >
1105
- <p><b>Get Stable Updates</b></p>
1106
  <ul class="getstarted_ul">
1107
- <li style="list-style:none;"><a href="https://ampforwp.com/beta-test/" target="_blank">Become a Beta Tester and Help us Push Stable Updates</a></li>
1108
  </ul>
1109
  </div>
1110
  <div class="clear"></div>
1111
  </div>'
1112
- . '<p><strong>' . __( '1. <a href="https://ampforwp.com/priority-support/" target="_blank">Fixing AMP Validation Errors</a>: ', 'accelerated-mobile-pages' ) . '</strong>' . __( 'We will personally take care that your website’s AMP version is perfectly validated. We will make sure that your AMP version gets approved and indexed by Google Webmaster Tools properly and we will even keep an eye on AMP updates from Google and implement them into your website.' ) . '</p>'
1113
- . '<p><strong>' . __( '2. <a href="https://ampforwp.com/help/#support-forum" target="_blank">Community Support Forum</a>: ', 'accelerated-mobile-pages' ) . '</strong>' . __( 'We have a special community support forum where you can ask us questions and get help about your AMP related questions. Delivering a good user experience means alot to us and so we try our best to reply each and every question that gets asked.' ) . '</p>'
1114
- . '<p><strong>' . __( '3. <a href="https://ampforwp.com/help/#contact" target="_blank">Hire Us / Other queries</a>: ', 'accelerated-mobile-pages' ) . '</strong>' . __( 'We try to answer each and every email, so remember to give us some time. For any other queries, please use the contact form. Please be descriptive as possible.' ) . '</p>'
1115
- . '<p><strong>' . __( '4. <a href="http://ampforwp.com/new/" target="_blank"> What\'s New in this Version?</a>: ', 'accelerated-mobile-pages' ) . '</strong>' . __( 'If you want to know whats new in the latest version of the plugin, then please use this link. ') . '</p>'
1116
 
1117
  . '</p></div>
1118
- <br /><p><h3>Take AMP to the Next Level with Premium Extensions</h3></p>
1119
  ' .$gettingstarted_extension_listing
1120
 
1121
- , 'accelerated-mobile-pages' ),
1122
  'icon' => 'el el-cogs'
1123
  ) );
1124
 
@@ -1154,8 +1153,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1154
  $amp_cpt_option = array(
1155
  'id' => 'ampforwp-custom-type',
1156
  'type' => 'select',
1157
- 'title' => __('Custom Post Types', 'accelerated-mobile-pages'),
1158
- 'tooltip-subtitle' => __('Enable AMP Support on Custom Post Types', 'accelerated-mobile-pages'),
1159
  'multi' => true,
1160
  //'data' => 'post_type',
1161
  'options' => ampforwp_get_cpt_generated_post_types(),
@@ -1175,15 +1174,14 @@ Redux::setArgs( "redux_builder_amp", $args );
1175
  }
1176
 
1177
  Redux::setSection( $opt_name, array(
1178
- 'title' => __( 'General', 'accelerated-mobile-pages' ),
1179
- // 'desc' => __( 'For full documentation on this field, visit: ', 'accelerated-mobile-pages' ) . '<a href="http://docs.reduxframework.com/core/fields/text/" target="_blank">http://docs.reduxframework.com/core/fields/text/</a>',
1180
  'id' => 'opt-text-subsection',
1181
  'subsection' => true,
1182
  'fields' => array(
1183
  array(
1184
  'id' => 'amp-logo',
1185
  'type' => 'section',
1186
- 'title' => __('Branding', 'accelerated-mobile-pages'),
1187
  'indent' => true,
1188
  'layout_type' => 'accordion',
1189
  'accordion-open'=> 1,
@@ -1193,19 +1191,19 @@ Redux::setArgs( "redux_builder_amp", $args );
1193
  'id' => 'opt-media',
1194
  'type' => 'media',
1195
  'url' => true,
1196
- 'title' => __('Logo', 'accelerated-mobile-pages'),
1197
- 'tooltip-subtitle'=>__('Upload a logo for the AMP version. (Recommended logo size: 190x36)', 'accelerated-mobile-pages'),
1198
  'default' => array('url' => ampforwp_default_logo_settings() ),
1199
  ),
1200
  array(
1201
  'id' => 'ampforwp-custom-logo-dimensions',
1202
- 'title' => __('Resize', 'accelerated-mobile-pages'),
1203
  'type' => 'switch',
1204
  'default' => 0,
1205
  ),
1206
  array(
1207
  'id' => 'ampforwp-custom-logo-dimensions-options',
1208
- 'title' => __('Resize Method', 'accelerated-mobile-pages'),
1209
  'type' => 'select',
1210
  'class' => 'child_opt child_opt_arrow',
1211
  'default' => '100',
@@ -1218,7 +1216,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1218
  ),
1219
  array(
1220
  'id' => 'ampforwp-custom-logo-dimensions-slider',
1221
- 'title' => __('Resize Your Logo', 'accelerated-mobile-pages'),
1222
  'type' => 'amp_slider',
1223
  'class' => 'child_opt',
1224
  'default' => '100',
@@ -1230,7 +1228,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1230
  'class' => 'child_opt',
1231
  'id' => 'opt-media-width',
1232
  'type' => 'text',
1233
- 'title' => __('Logo Width', 'accelerated-mobile-pages'),
1234
  'tooltip-subtitle' => __('Default width is 190 pixels', 'accelerated-mobile-pages'),
1235
  'default' => '190',
1236
  'required'=>array('ampforwp-custom-logo-dimensions-options','=','prescribed'),
@@ -1239,7 +1237,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1239
  'class' => 'child_opt',
1240
  'id' => 'opt-media-height',
1241
  'type' => 'text',
1242
- 'title' => __('Logo Height', 'accelerated-mobile-pages'),
1243
  'tooltip-subtitle' => __('Default height is 36 pixels', 'accelerated-mobile-pages'),
1244
  'default' => '36',
1245
  'required'=>array('ampforwp-custom-logo-dimensions-options','=','prescribed'),
@@ -1248,7 +1246,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1248
  array(
1249
  'id' => 'amp-support',
1250
  'type' => 'section',
1251
- 'title' => __('AMP Support', 'accelerated-mobile-pages'),
1252
  'indent' => true,
1253
  'layout_type' => 'accordion',
1254
  'accordion-open'=> 1,
@@ -1256,42 +1254,39 @@ Redux::setArgs( "redux_builder_amp", $args );
1256
  array(
1257
  'id' =>'amp-on-off-for-all-posts',
1258
  'type' => 'switch',
1259
- 'title' => __('Posts', 'accelerated-mobile-pages'),
1260
- 'tooltip-subtitle' => __('Enable AMP Support on Posts', 'accelerated-mobile-pages'),
1261
  'default' => 1,
1262
- // 'desc' => __( 'Re-Save permalink if you make changes in this option, please have a look <a href="https://ampforwp.com/flush-rewrite-urls/">here</a> on how to do it', 'accelerated-mobile-pages' ),
1263
  ),
1264
  array(
1265
  'id' =>'amp-on-off-for-all-pages',
1266
  'type' => 'switch',
1267
- 'title' => __('Pages', 'accelerated-mobile-pages'),
1268
- 'tooltip-subtitle' => __('Enable AMP Support on Pages.', 'accelerated-mobile-pages'),
1269
  'default' => 1,
1270
- // 'tooltip-subtitle' => __( '<a href="https://ampforwp.com/flush-rewrite-urls/">Re-Save permalink</a> if you make changes in this option, please have a look here on how to do it', 'accelerated-mobile-pages' ),
1271
  ),
1272
  array(
1273
  'id' => 'ampforwp-homepage-on-off-support',
1274
  'type' => 'switch',
1275
- 'title' => __('Homepage', 'accelerated-mobile-pages'),
1276
- 'tooltip-subtitle' => __('Enable AMP Support on Homepage.', 'accelerated-mobile-pages'),
1277
  'default' => '1'
1278
  ),
1279
  array(
1280
  'id' =>'amp-frontpage-select-option',
1281
  'type' => 'switch',
1282
- 'title' => __('Custom Front Page', 'accelerated-mobile-pages'),
1283
  'default' => 0,
1284
- 'tooltip-subtitle' => __('Set Custom Front Page as Homepage', 'accelerated-mobile-pages'),
1285
  'true' => 'true',
1286
  'false' => 'false',
1287
  'required' => array('ampforwp-homepage-on-off-support','=','1'),
1288
- // 'desc' => __( 'Re-Save permalink if front page or custom post page\'s pagination is not working. Please have a look <a href="https://ampforwp.com/flush-rewrite-urls/">here</a> on how to do it', 'accelerated-mobile-pages' ),
1289
  ),
1290
  array(
1291
  'id' => 'amp-frontpage-select-option-pages',
1292
  'type' => 'select',
1293
  'class' => 'child_opt child_opt_arrow',
1294
- 'title' => __('Select Page as Front Page', 'accelerated-mobile-pages'),
1295
  'required' => array('amp-frontpage-select-option', '=' , '1'),
1296
  // Must provide key => value pairs for select options
1297
  'data' => 'page',
@@ -1306,8 +1301,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1306
  'type' => 'switch',
1307
  'class' => 'child_opt',
1308
  'url' => true,
1309
- 'title' => __('Title on Static Front Page', 'accelerated-mobile-pages'),
1310
- 'tooltip-subtitle' => __('Enable/Disable display of title on the Static Front Page.', 'accelerated-mobile-pages'),
1311
  'default' => 0,
1312
  'required' => array('amp-frontpage-select-option', '=' , '1'),
1313
  ),
@@ -1315,46 +1310,32 @@ Redux::setArgs( "redux_builder_amp", $args );
1315
  array(
1316
  'id' => 'ampforwp-archive-support',
1317
  'type' => 'switch',
1318
- 'title' => __('Archives [Category & Tags]', 'accelerated-mobile-pages'),
1319
- 'tooltip-subtitle' => __('Enable AMP Support on Archives.', 'accelerated-mobile-pages'),
1320
  'default' => '0'
1321
  ),
1322
  $amp_cpt_option,
1323
  array(
1324
  'id' => 'ampforwp-amp-convert-to-wp',
1325
  'type' => 'switch',
1326
- 'title' => __('Convert AMP to WP theme (Beta)', 'accelerated-mobile-pages'),
1327
- 'tooltip-subtitle' => __('It makes your AMP & Non-AMP Same! (AMP will output AMP Compatible code, while WordPress will have the WP code but with the same design)', 'accelerated-mobile-pages'),
1328
  'default' => ampforwp_amp2wp_default(),
1329
  'required' => array('amp-design-selector', '=' , '4'),
1330
  ),
1331
  array(
1332
  'id' => 'ampforwp-amp-takeover',
1333
  'type' => 'switch',
1334
- 'title' => __('AMP Takeover (Beta)', 'accelerated-mobile-pages'),
1335
- 'tooltip-subtitle' => __('Make your non-amp to load the AMP (AMP & NON-AMP both will be AMP with same design)', 'accelerated-mobile-pages'),
1336
  'default' => '0'
1337
  ),
1338
-
1339
- // array(
1340
- // 'id' => 'amp-ad-places',
1341
- // 'type' => 'select',
1342
- // 'title' => __( 'Ads on Page', 'accelerated-mobile-pages' ),
1343
- // 'tooltip-subtitle' => __( 'select your preferece for Ads on Post Types', 'accelerated-mobile-pages' ),
1344
- // 'options' => array(
1345
- // '1' => __('Only on Posts', 'accelerated-mobile-pages' ),
1346
- // '2' => __('Only on Pages', 'accelerated-mobile-pages' ),
1347
- // '3' => __('on Both', 'accelerated-mobile-pages' ),
1348
- // ),
1349
- // 'default' => '3'
1350
- // ),
1351
-
1352
  )
1353
  ) );//END
1354
 
1355
  // AMP Content Page Builder SECTION
1356
  Redux::setSection( $opt_name, array(
1357
- 'title' => __( 'Page Builder', 'accelerated-mobile-pages' ),
1358
  'class' =>'',
1359
  'id' => 'amp-content-builder',
1360
  'class' => 'ampforwp-new-element',
@@ -1372,7 +1353,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1372
  position: absolute;
1373
  left: 0px;
1374
  top: 15px;
1375
- font-size: 15px;"><b>Introducing AMP Page Builder 3.0</b>, Re-Engineered in Vue.js! <br /> <a href="https://ampforwp.com/tutorials/article/amp-page-builder-installation/" target="_blank">Learn how to use this Feature</a></div>
1376
 
1377
  <iframe style="position: absolute;left: 0px;margin-top: 67px;" width="600" height="400" src="https://www.youtube.com/embed/QTbkn2rHyqM" frameborder="0" allowfullscreen></iframe>
1378
 
@@ -1388,12 +1369,12 @@ Redux::setArgs( "redux_builder_amp", $args );
1388
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
1389
  if(!is_plugin_active( 'amp-incontent-ads/amptoolkit-incontent-ads.php' ) ){
1390
 
1391
- $desc = '<a href="'.$AD_URL.'" target="_blank"><img class="ampforwp-ad-img-banner" src="'.AMPFORWP_IMAGE_DIR . '/amp-ads-retina.png" width="560" height="85" /></a>';
1392
  }
1393
 
1394
  // ADS SECTION
1395
  Redux::setSection( $opt_name, array(
1396
- 'title' => __( 'Advertisement', 'accelerated-mobile-pages' ),
1397
  'desc' => $desc,
1398
  'id' => 'amp-ads',
1399
  'subsection' => true,
@@ -1401,7 +1382,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1401
  array(
1402
  'id' => 'amp-ads_1',
1403
  'type' => 'section',
1404
- 'title' => __('Advertisement Positions', 'accelerated-mobile-pages'),
1405
  'indent' => true,
1406
  'layout_type' => 'accordion',
1407
  'accordion-open'=> 1,
@@ -1410,9 +1391,9 @@ Redux::setArgs( "redux_builder_amp", $args );
1410
  array(
1411
  'id' =>'enable-amp-ads-1',
1412
  'type' => 'switch',
1413
- 'title' => __('AD #1', 'accelerated-mobile-pages'),
1414
  'default' => 0,
1415
- 'desc' => __('Below the Header (SiteWide)', 'accelerated-mobile-pages'),
1416
  'true' => 'Enabled',
1417
  'false' => 'Disabled',
1418
  ),
@@ -1420,17 +1401,17 @@ Redux::setArgs( "redux_builder_amp", $args );
1420
  'class' => 'child_opt child_opt_arrow',
1421
  'id' => 'enable-amp-ads-select-1',
1422
  'type' => 'select',
1423
- 'title' => __('AD Size', 'accelerated-mobile-pages'),
1424
  'required' => array('enable-amp-ads-1', '=' , '1'),
1425
  // Must provide key => value pairs for select options
1426
  'options' => array(
1427
- '1' => __('300x250','accelerated-mobile-pages'),
1428
- '2' => __('336x280','accelerated-mobile-pages'),
1429
- '3' => __('728x90','accelerated-mobile-pages'),
1430
- '4' => __('300x600','accelerated-mobile-pages'),
1431
- '5' => __('320x100','accelerated-mobile-pages'),
1432
- '6' => __('200x50','accelerated-mobile-pages'),
1433
- '7' => __('320x50','accelerated-mobile-pages'), ),
1434
  'default' => '2',
1435
  ),
1436
  array(
@@ -1438,8 +1419,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1438
  'id' =>'enable-amp-ads-text-feild-client-1',
1439
  'type' => 'text',
1440
  'required' => array('enable-amp-ads-1', '=' , '1'),
1441
- 'title' => __('Data AD Client', 'accelerated-mobile-pages'),
1442
- 'tooltip-subtitle' => __('Enter the Data Ad Client (data-ad-client) from the adsense ad code.', 'accelerated-mobile-pages'),
1443
  'default' => '',
1444
  'placeholder'=> 'ca-pub-2005XXXXXXXXX342'
1445
  ),
@@ -1447,8 +1428,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1447
  'class' => 'child_opt',
1448
  'id' => 'enable-amp-ads-text-feild-slot-1',
1449
  'type' => 'text',
1450
- 'title' => __('Data AD Slot', 'accelerated-mobile-pages'),
1451
- 'tooltip-subtitle' => __('Enter the Data Ad Slot (data-ad-slot) from the adsense ad code.', 'accelerated-mobile-pages'),
1452
  'default' => '',
1453
  'required' => array('enable-amp-ads-1', '=' , '1'),
1454
  'placeholder'=> '70XXXXXX12'
@@ -1457,7 +1438,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1457
  'class' => 'child_opt',
1458
  'id' =>'enable-amp-ads-resp-1',
1459
  'type' => 'switch',
1460
- 'title' => __('Responsive Ad unit', 'accelerated-mobile-pages'),
1461
  'default' => 0,
1462
  'required' => array('enable-amp-ads-1', '=' , '1'),
1463
  ),
@@ -1467,9 +1448,9 @@ Redux::setArgs( "redux_builder_amp", $args );
1467
  array(
1468
  'id'=>'enable-amp-ads-2',
1469
  'type' => 'switch',
1470
- 'title' => __('AD #2', 'accelerated-mobile-pages'),
1471
  'default' => 0,
1472
- 'desc' => __('Below the Footer (SiteWide)', 'accelerated-mobile-pages'),
1473
  'true' => 'Enabled',
1474
  'false' => 'Disabled',
1475
  ),
@@ -1477,7 +1458,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1477
  'class' => 'child_opt child_opt_arrow',
1478
  'id' => 'enable-amp-ads-select-2',
1479
  'type' => 'select',
1480
- 'title' => __('AD Size', 'accelerated-mobile-pages'),
1481
  'required' => array('enable-amp-ads-2', '=' , '1'),
1482
  // Must provide key => value pairs for select options
1483
  'options' => array(
@@ -1496,7 +1477,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1496
  'id' =>'enable-amp-ads-text-feild-client-2',
1497
  'type' => 'text',
1498
  'required' => array('enable-amp-ads-2', '=' , '1'),
1499
- 'title' => __('Data AD Client', 'accelerated-mobile-pages'),
1500
  'tooltip-subtitle' => __('Enter the Data Ad Client (data-ad-client) from the adsense ad code.', 'accelerated-mobile-pages'),
1501
  'default' => '',
1502
  'placeholder'=> 'ca-pub-2005XXXXXXXXX342'
@@ -1505,8 +1486,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1505
  'class' => 'child_opt',
1506
  'id' => 'enable-amp-ads-text-feild-slot-2',
1507
  'type' => 'text',
1508
- 'title' => __('Data AD Slot', 'accelerated-mobile-pages'),
1509
- 'tooltip-subtitle' => __('Enter the Data Ad Slot (data-ad-slot) from the adsense ad code.', 'accelerated-mobile-pages'),
1510
  'default' => '',
1511
  'required' => array('enable-amp-ads-2', '=' , '1'),
1512
  'placeholder'=> '70XXXXXX12'
@@ -1515,7 +1496,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1515
  'class' => 'child_opt',
1516
  'id' =>'enable-amp-ads-resp-2',
1517
  'type' => 'switch',
1518
- 'title' => __('Responsive Ad unit', 'accelerated-mobile-pages'),
1519
  'default' => 0,
1520
  'required' => array('enable-amp-ads-2', '=' , '1'),
1521
  ),
@@ -1525,9 +1506,9 @@ Redux::setArgs( "redux_builder_amp", $args );
1525
  array(
1526
  'id' => 'enable-amp-ads-3',
1527
  'type' => 'switch',
1528
- 'title' => __('AD #3', 'accelerated-mobile-pages'),
1529
  'default' => 0,
1530
- 'desc' => __('Above the Post Content', 'accelerated-mobile-pages'),
1531
  'true' => 'Enabled',
1532
  'false' => 'Disabled',
1533
  ),
@@ -1535,7 +1516,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1535
  'class' => 'child_opt child_opt_arrow',
1536
  'id' => 'made-amp-ad-3-global',
1537
  'type' => 'select',
1538
- 'title' => __('Display on', 'accelerated-mobile-pages'),
1539
  'options' => array (
1540
  '1' => 'Single',
1541
  '2' => 'Pages',
@@ -1544,14 +1525,14 @@ Redux::setArgs( "redux_builder_amp", $args );
1544
  ),
1545
  'multi' => true,
1546
  'default' => '1',
1547
- 'desc' => __('Display the Ad on only post or on all posts and pages ', 'accelerated-mobile-pages'),
1548
  'required' => array('enable-amp-ads-3', '=' , '1')
1549
  ),
1550
  array(
1551
  'class' => 'child_opt child_opt_arrow',
1552
  'id' => 'enable-amp-ads-select-3',
1553
  'type' => 'select',
1554
- 'title' => __('AD Size', 'accelerated-mobile-pages'),
1555
  'required' => array('enable-amp-ads-3', '=' , '1'),
1556
  // Must provide key => value pairs for select options
1557
  'options' => array(
@@ -1570,8 +1551,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1570
  'id' =>'enable-amp-ads-text-feild-client-3',
1571
  'type' => 'text',
1572
  'required' => array('enable-amp-ads-3', '=' , '1'),
1573
- 'title' => __('Data AD Client', 'accelerated-mobile-pages'),
1574
- 'tooltip-subtitle' => __('Enter the Data Ad Client (data-ad-client) from the adsense ad code.', 'accelerated-mobile-pages'),
1575
  'default' => '',
1576
  'placeholder'=> 'ca-pub-2005XXXXXXXXX342'
1577
  ),
@@ -1579,8 +1560,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1579
  'class' => 'child_opt',
1580
  'id' => 'enable-amp-ads-text-feild-slot-3',
1581
  'type' => 'text',
1582
- 'title' => __('Data AD Slot', 'accelerated-mobile-pages'),
1583
- 'tooltip-subtitle' => __('Enter the Data Ad Slot (data-ad-slot) from the adsense ad code.', 'accelerated-mobile-pages'),
1584
  'default' => '',
1585
  'required' => array('enable-amp-ads-3', '=' , '1'),
1586
  'placeholder'=> '70XXXXXX12'
@@ -1589,7 +1570,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1589
  'class' => 'child_opt',
1590
  'id' =>'enable-amp-ads-resp-3',
1591
  'type' => 'switch',
1592
- 'title' => __('Responsive Ad unit', 'accelerated-mobile-pages'),
1593
  'default' => 0,
1594
  'required' => array('enable-amp-ads-3', '=' , '1'),
1595
  ),
@@ -1599,9 +1580,9 @@ Redux::setArgs( "redux_builder_amp", $args );
1599
  array(
1600
  'id' => 'enable-amp-ads-4',
1601
  'type' => 'switch',
1602
- 'title' => __('AD #4', 'accelerated-mobile-pages'),
1603
  'default' => 0,
1604
- 'desc' => __('Below the Post Content (Single Post)', 'accelerated-mobile-pages'),
1605
  'true' => 'Enabled',
1606
  'false' => 'Disabled',
1607
  ),
@@ -1609,17 +1590,17 @@ Redux::setArgs( "redux_builder_amp", $args );
1609
  'class' => 'child_opt child_opt_arrow',
1610
  'id' => 'enable-amp-ads-select-4',
1611
  'type' => 'select',
1612
- 'title' => __('AD Size', 'accelerated-mobile-pages'),
1613
  'required' => array('enable-amp-ads-4', '=' , '1'),
1614
  // Must provide key => value pairs for select options
1615
  'options' => array(
1616
- '1' => __('300x250','accelerated-mobile-pages'),
1617
- '2' => __('336x280','accelerated-mobile-pages'),
1618
- '3' => __('728x90','accelerated-mobile-pages'),
1619
- '4' => __('300x600','accelerated-mobile-pages'),
1620
- '5' => __('320x100','accelerated-mobile-pages'),
1621
- '6' => __('200x50','accelerated-mobile-pages'),
1622
- '7' => __('320x50','accelerated-mobile-pages')
1623
  ),
1624
  'default' => '2',
1625
  ),
@@ -1628,8 +1609,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1628
  'id' =>'enable-amp-ads-text-feild-client-4',
1629
  'type' => 'text',
1630
  'required' => array('enable-amp-ads-4', '=' , '1'),
1631
- 'title' => __('Data AD Client', 'accelerated-mobile-pages'),
1632
- 'tooltip-subtitle' => __('Enter the Data Ad Client (data-ad-client) from the adsense ad code.', 'accelerated-mobile-pages'),
1633
  'default' => '',
1634
  'placeholder'=> 'ca-pub-2005XXXXXXXXX342'
1635
  ),
@@ -1637,8 +1618,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1637
  'class' => 'child_opt',
1638
  'id' => 'enable-amp-ads-text-feild-slot-4',
1639
  'type' => 'text',
1640
- 'title' => __('Data AD Slot', 'accelerated-mobile-pages'),
1641
- 'tooltip-subtitle' => __('Enter the Data Ad Slot (data-ad-slot) from the adsense ad code. ', 'accelerated-mobile-pages'),
1642
  'default' => '',
1643
  'required' => array('enable-amp-ads-4', '=' , '1'),
1644
  'placeholder'=> '70XXXXXX12'
@@ -1647,7 +1628,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1647
  'class' => 'child_opt',
1648
  'id' =>'enable-amp-ads-resp-4',
1649
  'type' => 'switch',
1650
- 'title' => __('Responsive Ad unit', 'accelerated-mobile-pages'),
1651
  'default' => 0,
1652
  'required' => array('enable-amp-ads-4', '=' , '1'),
1653
  ),
@@ -1657,9 +1638,9 @@ Redux::setArgs( "redux_builder_amp", $args );
1657
  array(
1658
  'id' => 'enable-amp-ads-5',
1659
  'type' => 'switch',
1660
- 'title' => __('AD #5', 'accelerated-mobile-pages'),
1661
  'default' => 0,
1662
- 'desc' => __('Below The Title (Single Post)', 'accelerated-mobile-pages'),
1663
  'true' => 'Enabled',
1664
  'false' => 'Disabled',
1665
  ),
@@ -1667,17 +1648,17 @@ Redux::setArgs( "redux_builder_amp", $args );
1667
  'class' => 'child_opt child_opt_arrow',
1668
  'id' => 'enable-amp-ads-select-5',
1669
  'type' => 'select',
1670
- 'title' => __('AD Size', 'accelerated-mobile-pages'),
1671
  'required' => array('enable-amp-ads-5', '=' , '1'),
1672
  // Must provide key => value pairs for select options
1673
  'options' => array(
1674
- '1' => __('300x250','accelerated-mobile-pages'),
1675
- '2' => __('336x280','accelerated-mobile-pages'),
1676
- '3' => __('728x90','accelerated-mobile-pages'),
1677
- '4' => __('300x600','accelerated-mobile-pages'),
1678
- '5' => __('320x100','accelerated-mobile-pages'),
1679
- '6' => __('200x50','accelerated-mobile-pages'),
1680
- '7' => __('320x50','accelerated-mobile-pages')
1681
  ),
1682
  'default' => '2',
1683
  ),
@@ -1686,8 +1667,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1686
  'id' =>'enable-amp-ads-text-feild-client-5',
1687
  'type' => 'text',
1688
  'required' => array('enable-amp-ads-5', '=' , '1'),
1689
- 'title' => __('Data AD Client', 'accelerated-mobile-pages'),
1690
- 'tooltip-subtitle' => __('Enter the Data Ad Client (data-ad-client) from the adsense ad code.', 'accelerated-mobile-pages'),
1691
  'default' => '',
1692
  'placeholder'=> 'ca-pub-2005XXXXXXXXX342'
1693
  ),
@@ -1695,8 +1676,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1695
  'class' => 'child_opt',
1696
  'id' => 'enable-amp-ads-text-feild-slot-5',
1697
  'type' => 'text',
1698
- 'title' => __('Data AD Slot', 'accelerated-mobile-pages'),
1699
- 'tooltip-subtitle' => __('Enter the Data Ad Slot (data-ad-slot) from the adsense ad code. ', 'accelerated-mobile-pages'),
1700
  'default' => '',
1701
  'required' => array('enable-amp-ads-5', '=' , '1'),
1702
  'placeholder'=> '70XXXXXX12'
@@ -1705,7 +1686,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1705
  'class' => 'child_opt',
1706
  'id' =>'enable-amp-ads-resp-5',
1707
  'type' => 'switch',
1708
- 'title' => __('Responsive Ad unit', 'accelerated-mobile-pages'),
1709
  'default' => 0,
1710
  'required' => array('enable-amp-ads-5', '=' , '1'),
1711
  ),
@@ -1714,9 +1695,9 @@ Redux::setArgs( "redux_builder_amp", $args );
1714
  array(
1715
  'id' => 'enable-amp-ads-6',
1716
  'type' => 'switch',
1717
- 'title' => __('AD #6', 'accelerated-mobile-pages'),
1718
  'default' => 0,
1719
- 'desc' => __('Above the Related Posts (Single Post)', 'accelerated-mobile-pages'),
1720
  'true' => 'Enabled',
1721
  'false' => 'Disabled',
1722
  ),
@@ -1724,17 +1705,17 @@ Redux::setArgs( "redux_builder_amp", $args );
1724
  'class' => 'child_opt child_opt_arrow',
1725
  'id' => 'enable-amp-ads-select-6',
1726
  'type' => 'select',
1727
- 'title' => __('AD Size', 'accelerated-mobile-pages'),
1728
  'required' => array('enable-amp-ads-6', '=' , '1'),
1729
  // Must provide key => value pairs for select options
1730
  'options' => array(
1731
- '1' => __('300x250','accelerated-mobile-pages'),
1732
- '2' => __('336x280','accelerated-mobile-pages'),
1733
- '3' => __('728x90','accelerated-mobile-pages'),
1734
- '4' => __('300x600','accelerated-mobile-pages'),
1735
- '5' => __('320x100','accelerated-mobile-pages'),
1736
- '6' => __('200x50','accelerated-mobile-pages'),
1737
- '7' => __('320x50','accelerated-mobile-pages')
1738
  ),
1739
  'default' => '2',
1740
  ),
@@ -1743,8 +1724,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1743
  'id' =>'enable-amp-ads-text-feild-client-6',
1744
  'type' => 'text',
1745
  'required' => array('enable-amp-ads-6', '=' , '1'),
1746
- 'title' => __('Data AD Client', 'accelerated-mobile-pages'),
1747
- 'tooltip-subtitle' => __('Enter the Data Ad Client (data-ad-client) from the adsense ad code.', 'accelerated-mobile-pages'),
1748
  'default' => '',
1749
  'placeholder'=> 'ca-pub-2005XXXXXXXXX342'
1750
  ),
@@ -1752,8 +1733,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1752
  'class' => 'child_opt',
1753
  'id' => 'enable-amp-ads-text-feild-slot-6',
1754
  'type' => 'text',
1755
- 'title' => __('Data AD Slot', 'accelerated-mobile-pages'),
1756
- 'tooltip-subtitle' => __('Enter the Data Ad Slot (data-ad-slot) from the adsense ad code. ', 'accelerated-mobile-pages'),
1757
  'default' => '',
1758
  'required' => array('enable-amp-ads-6', '=' , '1'),
1759
  'placeholder'=> '70XXXXXX12'
@@ -1762,7 +1743,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1762
  'class' => 'child_opt',
1763
  'id' =>'enable-amp-ads-resp-6',
1764
  'type' => 'switch',
1765
- 'title' => __('Responsive Ad unit', 'accelerated-mobile-pages'),
1766
  'default' => 0,
1767
  'required' => array('enable-amp-ads-6', '=' , '1'),
1768
  ),
@@ -1770,7 +1751,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1770
  array(
1771
  'id' => 'amp-ads_2',
1772
  'type' => 'section',
1773
- 'title' => __('Ad Performance', 'accelerated-mobile-pages'),
1774
  'indent' => true,
1775
  'layout_type' => 'accordion',
1776
  'accordion-open'=> 1,
@@ -1779,7 +1760,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1779
  array(
1780
  'id' => 'amp-ads_2',
1781
  'type' => 'section',
1782
- 'title' => __('Ad Performance', 'accelerated-mobile-pages'),
1783
  'indent' => true,
1784
  'layout_type' => 'accordion',
1785
  'accordion-open'=> 1,
@@ -1787,16 +1768,16 @@ Redux::setArgs( "redux_builder_amp", $args );
1787
  array(
1788
  'id' =>'ampforwp-ads-data-loading-strategy',
1789
  'type' => 'switch',
1790
- 'title' => __('Optimize For Viewability', 'accelerated-mobile-pages'),
1791
  'default' => 0,
1792
- 'tooltip-subtitle' => __('This will increase the loading speed of the Ads', 'accelerated-mobile-pages'),
1793
  'true' => 'Enabled',
1794
  'false' => 'Disabled',
1795
  ),
1796
  array(
1797
  'id' => 'amp-ads_3',
1798
  'type' => 'section',
1799
- 'title' => __('General', 'accelerated-mobile-pages'),
1800
  'indent' => true,
1801
  'layout_type' => 'accordion',
1802
  'accordion-open'=> 1,
@@ -1804,7 +1785,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1804
  array(
1805
  'id' =>'ampforwp-ads-sponsorship',
1806
  'type' => 'switch',
1807
- 'title' => __('Sponsorship Label', 'accelerated-mobile-pages'),
1808
  'default' => 0,
1809
  'true' => 'Enabled',
1810
  'false' => 'Disabled',
@@ -1813,7 +1794,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1813
  'id' =>'ampforwp-ads-sponsorship-label',
1814
  'type' => 'text',
1815
  'required' => array('ampforwp-ads-sponsorship', '=' , '1'),
1816
- 'title' => __('Sponsorship Label Text', 'accelerated-mobile-pages'),
1817
  'class' => 'child_opt child_opt_arrow',
1818
  'default' => '',
1819
  'placeholder'=> 'Sponsored'
@@ -1837,14 +1818,14 @@ Redux::setArgs( "redux_builder_amp", $args );
1837
  }
1838
  // SEO SECTION
1839
  Redux::setSection( $opt_name, array(
1840
- 'title' => __( 'SEO', 'accelerated-mobile-pages' ),
1841
  'id' => 'amp-seo',
1842
  'subsection' => true,
1843
  'fields' => array(
1844
  array(
1845
  'id' => 'ampforwp-seo-general-section',
1846
  'type' => 'section',
1847
- 'title' => __('General', 'accelerated-mobile-pages'),
1848
  'indent' => true,
1849
  'layout_type' => 'accordion',
1850
  'accordion-open'=> 1,
@@ -1852,22 +1833,22 @@ Redux::setArgs( "redux_builder_amp", $args );
1852
  array(
1853
  'id' => 'ampforwp-seo-meta-description',
1854
  'type' => 'switch',
1855
- 'title' => __('Meta Description', 'accelerated-mobile-pages'),
1856
- 'tooltip-subtitle' => __('The meta tag that displays in head', 'accelerated-mobile-pages'),
1857
  'default' => 0
1858
  ),
1859
 
1860
  array(
1861
  'id' => 'ampforwp-seo-custom-additional-meta',
1862
  'type' => 'textarea',
1863
- 'title' => __('Head Section', 'accelerated-mobile-pages'),
1864
- 'tooltip-subtitle' => __('Adds additional Meta to the head section', 'accelerated-mobile-pages', 'accelerated-mobile-pages'),
1865
- 'placeholder' => __('<!-- Paste your Additional HTML , that goes between <head> </head> tags -->','accelerated-mobile-pages')
1866
  ),
1867
  array(
1868
  'id' => 'ampforwp-seo-plugins-section',
1869
  'type' => 'section',
1870
- 'title' => __('SEO Plugin Integration', 'accelerated-mobile-pages'),
1871
  'indent' => true,
1872
  'layout_type' => 'accordion',
1873
  'accordion-open'=> 1,
@@ -1875,7 +1856,7 @@ Redux::setArgs( "redux_builder_amp", $args );
1875
  array(
1876
  'id' => 'ampforwp-seo-selection',
1877
  'type' => 'select',
1878
- 'title' => __('Select SEO Plugin', 'accelerated-mobile-pages'),
1879
  'options' => array(
1880
  '1' => 'Yoast',
1881
  '2' => 'All in One SEO'
@@ -1886,8 +1867,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1886
  'class' => 'child_opt child_opt_arrow',
1887
  'id' => 'ampforwp-seo-yoast-meta',
1888
  'type' => 'switch',
1889
- 'tooltip-subtitle' => __('Adds Social and Open Graph Meta Tags from Yoast', 'accelerated-mobile-pages'),
1890
- 'title' => __( 'Meta Tags from Yoast', 'accelerated-mobile-pages' ),
1891
  'default' => '1',
1892
  'required' => array('ampforwp-seo-selection', '=' , '1'),
1893
  ),
@@ -1895,8 +1876,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1895
  'class' => 'child_opt',
1896
  'id' => 'ampforwp-seo-yoast-description',
1897
  'type' => 'switch',
1898
- 'tooltip-subtitle' => __('Adds Yoast Custom description to ld+json for AMP page', 'accelerated-mobile-pages'),
1899
- 'title' => __( 'Yoast Description in ld+json', 'accelerated-mobile-pages' ),
1900
  'default' => 0,
1901
  'required' => array('ampforwp-seo-selection', '=' , '1'),
1902
  ),
@@ -1904,8 +1885,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1904
  'class' => 'child_opt',
1905
  'id' => 'ampforwp-seo-yoast-canonical',
1906
  'type' => 'switch',
1907
- 'tooltip-subtitle' => __('Pull Canonical from Yoast for AMP pages', 'accelerated-mobile-pages'),
1908
- 'title' => __( 'Canonical from Yoast', 'accelerated-mobile-pages' ),
1909
  'default' => 0,
1910
  'required' => array('ampforwp-seo-selection', '=' , '1'),
1911
  ),
@@ -1913,22 +1894,22 @@ Redux::setArgs( "redux_builder_amp", $args );
1913
  'id' => 'ampforwp-seo-aioseo',
1914
  'type' => 'info',
1915
  'style' => 'success',
1916
- 'desc' => __("All in One SEO works out of the Box with our plugin. It deosn't requires any extra config except Canonicals.", 'accelerated-mobile-pages'),
1917
  'required' => array('ampforwp-seo-selection', '=', '2')
1918
  ),
1919
  array(
1920
  'class' => 'child_opt',
1921
  'id' => 'ampforwp-seo-aioseo-canonical',
1922
  'type' => 'switch',
1923
- 'tooltip-subtitle' => __('Pull Canonical from All In One SEO for AMP pages', 'accelerated-mobile-pages'),
1924
- 'title' => __( 'Canonical from All In One SEO', 'accelerated-mobile-pages' ),
1925
  'default' => 0,
1926
  'required' => array('ampforwp-seo-selection', '=' , '2'),
1927
  ),
1928
  array(
1929
  'id' => 'ampforwp-seo-index-noindex-sub-section',
1930
  'type' => 'section',
1931
- 'title' => __('Advanced Indexing', 'accelerated-mobile-pages'),
1932
  'indent' => true,
1933
  'layout_type' => 'accordion',
1934
  'accordion-open'=> 1,
@@ -1936,15 +1917,15 @@ Redux::setArgs( "redux_builder_amp", $args );
1936
  array(
1937
  'id' => 'amp-inspection-tool',
1938
  'type' => 'switch',
1939
- 'title' => __('URL Inspection Tool Compatibility', 'accelerated-mobile-pages'),
1940
- 'tooltip-subtitle' => __("You can read about it <a target='_blank' href='https://webmasters.googleblog.com/2018/06/new-url-inspection-tool-more-in-search.html'>here</a>",'accelerated-mobile-pages'),
1941
  'default' => 1,
1942
  ),
1943
  array(
1944
  'id' => 'ampforwp-robots-archive-sub-pages-sitewide',
1945
  'type' => 'switch',
1946
- 'title' => __('Archive subpages (sitewide)', 'accelerated-mobile-pages'),
1947
- 'tooltip-subtitle' => __("Such as /page/2 so on and so forth",'accelerated-mobile-pages'),
1948
  'default' => 0,
1949
  'on' => 'index',
1950
  'off' => 'noindex',
@@ -1954,8 +1935,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1954
  array(
1955
  'id' => 'ampforwp-robots-archive-author-pages',
1956
  'type' => 'switch',
1957
- 'title' => __('Author Archives', 'accelerated-mobile-pages'),
1958
- 'tooltip-subtitle' => __("Enable it to set Indexing for Author Archives",'accelerated-mobile-pages'),
1959
  'default' => 1,
1960
  'on' => 'index',
1961
  'off' => 'noindex',
@@ -1965,8 +1946,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1965
  array(
1966
  'id' => 'ampforwp-robots-archive-date-pages',
1967
  'type' => 'switch',
1968
- 'title' => __('Date Archives', 'accelerated-mobile-pages'),
1969
- 'tooltip-subtitle' => __("Enable it to set Indexing for Date Archives",'accelerated-mobile-pages'),
1970
  'default' => 1,
1971
  'on' => 'index',
1972
  'off' => 'noindex',
@@ -1976,8 +1957,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1976
  array(
1977
  'id' => 'ampforwp-robots-archive-category-pages',
1978
  'type' => 'switch',
1979
- 'title' => __('Categories', 'accelerated-mobile-pages'),
1980
- 'tooltip-subtitle' => __("Enable it to set Indexing for Categories",'accelerated-mobile-pages'),
1981
  'default' => 1,
1982
  'on' => 'index',
1983
  'off' => 'noindex',
@@ -1987,8 +1968,8 @@ Redux::setArgs( "redux_builder_amp", $args );
1987
  array(
1988
  'id' => 'ampforwp-robots-archive-tag-pages',
1989
  'type' => 'switch',
1990
- 'title' => __('Tags', 'accelerated-mobile-pages'),
1991
- 'tooltip-subtitle' => __("Enable it to set Indexing for Tags",'accelerated-mobile-pages'),
1992
  'default' => 1,
1993
  'on' => 'index',
1994
  'off' => 'noindex',
@@ -2005,7 +1986,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2005
 
2006
  // Performance SECTION
2007
  Redux::setSection( $opt_name, array(
2008
- 'title' => __( 'PWA', 'accelerated-mobile-pages' ),
2009
  'id' => 'pwa-for-wp',
2010
  'desc' => '',
2011
  'subsection' => true,
@@ -2014,7 +1995,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2014
  array(
2015
  'id' => 'ampforwp-pwa-for-wp',
2016
  'type' => 'section',
2017
- 'title' => __('Progressive Web App (PWA)', 'accelerated-mobile-pages'),
2018
  'indent' => true,
2019
  'layout_type' => 'accordion',
2020
  'accordion-open'=> 1,
@@ -2023,9 +2004,9 @@ Redux::setArgs( "redux_builder_amp", $args );
2023
  array(
2024
  'id' => 'ampforwp_pwa_module',
2025
  'type' => 'raw',
2026
- 'title' => __('PWA Support', 'accelerated-mobile-pages'),
2027
  'content' => (!is_plugin_active('pwa-for-wp/pwa-for-wp.php')?
2028
- '<div class="ampforwp-recommendation-btn update-message ampforwp-modules ampforwp-activation-call-module-upgrade " id="ampforwp-pwa-activation-call"> <p>Activate this Module</p></div>'
2029
  : '<div class="col-wrapper">
2030
  <a href="'.admin_url('admin.php?page=pwaforwp&reference=ampforwp').'"> <div class="ampforwp-recommendation-btn updated-message"><p>Go to PWA Settings</p></div> </a>
2031
  </div>
@@ -2040,7 +2021,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2040
 
2041
  // Performance SECTION
2042
  Redux::setSection( $opt_name, array(
2043
- 'title' => __( 'Performance', 'accelerated-mobile-pages' ),
2044
  'id' => 'amp-performance',
2045
  'desc' => $cache_desc,
2046
  'subsection' => true,
@@ -2048,7 +2029,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2048
  array(
2049
  'id' => 'ampforwp-performance',
2050
  'type' => 'section',
2051
- 'title' => __('Performance Enhancement', 'accelerated-mobile-pages'),
2052
  'indent' => true,
2053
  'layout_type' => 'accordion',
2054
  'accordion-open'=> 1,
@@ -2057,8 +2038,8 @@ Redux::setArgs( "redux_builder_amp", $args );
2057
  array(
2058
  'id' => 'ampforwp_cache_minimize_mode',
2059
  'type' => 'switch',
2060
- 'title' => __('Minify', 'accelerated-mobile-pages'),
2061
- 'tooltip-subtitle' => __('Improve the Page Speed and Loading time with Minification option', 'accelerated-mobile-pages'),
2062
  'default' => 0
2063
  ),
2064
 
@@ -2081,7 +2062,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2081
 
2082
  // Analytics SECTION
2083
  Redux::setSection( $opt_name, array(
2084
- 'title' => __('Analytics'),
2085
  // 'icon' => 'el el-th-large',
2086
  'subsection' => true,
2087
  'fields' =>
@@ -2089,23 +2070,23 @@ Redux::setArgs( "redux_builder_amp", $args );
2089
  array(
2090
  'id' => 'amp-analytics-select-option',
2091
  'type' => 'select',
2092
- 'title' => __( 'Analytics Type', 'accelerated-mobile-pages' ),
2093
  'class' => 'hide',
2094
- 'tooltip-subtitle' => __( 'Select your Analytics provider.', 'accelerated-mobile-pages' ),
2095
  'options' => array(
2096
- '1' => __('Google Analytics', 'accelerated-mobile-pages' ),
2097
- '2' => __('Segment Analytics', 'accelerated-mobile-pages' ),
2098
- '3' => __('Matomo (Piwik) Analytics', 'accelerated-mobile-pages' ),
2099
- '4' => __('Quantcast Measurement', 'accelerated-mobile-pages' ),
2100
- '5' => __('comScore', 'accelerated-mobile-pages' ),
2101
- '6' => __('Effective Measure', 'accelerated-mobile-pages' ),
2102
- '7' => __('StatCounter', 'accelerated-mobile-pages' ),
2103
- '8' => __('Histats Analytics', 'accelerated-mobile-pages'),
2104
- '9' => __('Yandex Metrika', 'accelerated-mobile-pages'),
2105
- '10' => __('Chartbeat Analytics', 'accelerated-mobile-pages'),
2106
- '11' => __('Alexa Metrics', 'accelerated-mobile-pages'),
2107
- '12' => __('AFS Analytics', 'accelerated-mobile-pages'),
2108
- '13' => __('Adobe Analytics', 'accelerated-mobile-pages'),
2109
  ),
2110
  'required' => array(
2111
  array('amp-use-gtm-option', '=' , '0'),
@@ -2115,7 +2096,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2115
  array(
2116
  'id' => 'ampforwp-analytics_1',
2117
  'type' => 'section',
2118
- 'title' => __('Primary Analytic Providers', 'accelerated-mobile-pages'),
2119
  'indent' => true,
2120
  'layout_type' => 'accordion',
2121
  'accordion-open'=> 1,
@@ -2134,13 +2115,13 @@ Redux::setArgs( "redux_builder_amp", $args );
2134
  'class' => 'child_opt child_opt_arrow',
2135
  'id' => 'ga-feild',
2136
  'type' => 'text',
2137
- 'title' => __( 'Tracking ID', 'accelerated-mobile-pages' ),
2138
  'required' => array(
2139
  array('amp-use-gtm-option', '=' , '0'),
2140
  array('ampforwp-ga-switch', '=' , '1'),
2141
  array('ampforwp-ga-field-advance-switch', '=' , '0')
2142
  ),
2143
- 'tooltip-subtitle' => __( 'Enter your Google Analytics ID. Example: UA-XXXXX-Y', 'accelerated-mobile-pages' ),
2144
  'default' => 'UA-XXXXX-Y',
2145
  ),
2146
 
@@ -2149,7 +2130,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2149
  'class' => 'child_opt',
2150
  'id' => 'ampforwp-ga-field-advance-switch',
2151
  'type' => 'switch',
2152
- 'title' => __( 'Advanced Google Analytics', 'accelerated-mobile-pages' ),
2153
  'required' => array(
2154
  array('amp-use-gtm-option', '=' , '0'),
2155
  array('ampforwp-ga-switch', '=' , '1')
@@ -2160,7 +2141,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2160
  'class' => 'child_opt',
2161
  'id' => 'ampforwp-ga-field-anonymizeIP',
2162
  'type' => 'switch',
2163
- 'title' => __( 'IP Anonymization', 'accelerated-mobile-pages' ),
2164
  'required' => array(
2165
  array('amp-use-gtm-option', '=' , '0'),
2166
  array('ampforwp-ga-switch', '=' , '1')
@@ -2171,8 +2152,8 @@ Redux::setArgs( "redux_builder_amp", $args );
2171
  'class' => 'child_opt',
2172
  'id' => 'ampforwp-ga-field-advance',
2173
  'type' => 'ace_editor',
2174
- 'title' => __('Analytics Code in JSON Format', 'accelerated-mobile-pages'),
2175
- 'tooltip-subtitle' => __('Tutorial: <a href="https://ampforwp.com/tutorials/article/add-advanced-google-analytics-amp/" target="_blank">How To Add Advanced Google Analytics in AMP?</a>', 'accelerated-mobile-pages'),
2176
  'required' => array(
2177
  array('amp-use-gtm-option', '=' , '0'),
2178
  array('ampforwp-ga-switch', '=' , '1'),
@@ -2181,7 +2162,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2181
  'mode' => 'javascript',
2182
  'theme' => 'monokai',
2183
  'desc' => '',
2184
- 'default' => __('{
2185
  "vars": {
2186
  "account": "UA-xxxxxxx-x" //Replace this with your Tracking ID
2187
  },
@@ -2200,17 +2181,17 @@ Redux::setArgs( "redux_builder_amp", $args );
2200
  array(
2201
  'id' => 'amp-use-gtm-option',
2202
  'type' => 'switch',
2203
- 'title' => __( 'Google Tag Manager', 'accelerated-mobile-pages' ),
2204
- 'tooltip-subtitle' => __( 'Enable GTM Support in AMP.', 'accelerated-mobile-pages' ),
2205
  'default' => 0,
2206
  ),
2207
  array(
2208
  'class'=>'child_opt child_opt_arrow',
2209
  'id' =>'amp-gtm-id',
2210
  'type' => 'text',
2211
- 'title' => __('Tag Manager ID (Container ID)','accelerated-mobile-pages'),
2212
  'default' => '',
2213
- 'tooltip-subtitle' => __('Eg: GTM-5XXXXXP (<a href="https://ampforwp.com/tutorials/article/gtm-in-amp/" style="color:#f1f1f1;">Getting Started?</a>)','accelerated-mobile-pages'),
2214
  // 'validate' => 'not_empty',
2215
  'required' => array(
2216
  array('amp-use-gtm-option', '=' , '1')
@@ -2220,9 +2201,9 @@ Redux::setArgs( "redux_builder_amp", $args );
2220
  'class' => 'child_opt',
2221
  'id' =>'amp-gtm-analytics-type',
2222
  'type' => 'text',
2223
- 'title' => __('Analytics Type','accelerated-mobile-pages'),
2224
  'default' => '',
2225
- 'desc' => __('Eg: googleanalytics','accelerated-mobile-pages'),
2226
  // 'validate' => 'not_empty',
2227
  'required' => array(
2228
  array('amp-use-gtm-option', '=' , '1')
@@ -2232,7 +2213,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2232
  'class'=>'child_opt',
2233
  'id' =>'amp-gtm-analytics-code',
2234
  'type' => 'text',
2235
- 'title' => __('Analytics ID','accelerated-mobile-pages'),
2236
  'default' => '',
2237
  'tooltip-subtitle' => 'Eg: UA-XXXXXX-Y',
2238
  // 'validate' => 'not_empty',
@@ -2243,7 +2224,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2243
  'class' => 'child_opt',
2244
  'id' => 'ampforwp-gtm-field-anonymizeIP',
2245
  'type' => 'switch',
2246
- 'title' => __( 'IP Anonymization', 'accelerated-mobile-pages' ),
2247
  'required' => array(
2248
  array('amp-use-gtm-option', '=' , '1'),
2249
  ),
@@ -2255,7 +2236,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2255
  'type' => 'info',
2256
  'style' => 'info',
2257
  'desc' => '<a href="https://ampforwp.com/tutorials/article/set-google-amp-client-id-api/" target="_blank">Check this Tutorial to set it up</a>',
2258
- 'title' => __('Set up Google AMP Client ID API', 'accelerated-mobile-pages'),
2259
  'required' => array(
2260
  array('amp-use-gtm-option', '=' , '1'),
2261
  ),
@@ -2263,7 +2244,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2263
  array(
2264
  'id' => 'ampforwp-analytics_2',
2265
  'type' => 'section',
2266
- 'title' => __('General Analytics Providers', 'accelerated-mobile-pages'),
2267
  'indent' => true,
2268
  'layout_type' => 'accordion',
2269
  'accordion-open'=> 1,
@@ -2271,13 +2252,13 @@ Redux::setArgs( "redux_builder_amp", $args );
2271
  array(
2272
  'id' =>'amp-fb-pixel',
2273
  'type' => 'switch',
2274
- 'title' => __('Facebook Pixel','accelerated-mobile-pages'),
2275
  'default' => 0,
2276
  ),
2277
  array(
2278
  'id' =>'amp-fb-pixel-id',
2279
  'type' => 'text',
2280
- 'title' => __('Facebook Pixel ID','accelerated-mobile-pages'),
2281
  'default' => '',
2282
  'desc' => 'Example: 153246987501548',
2283
  'required' => array(
@@ -2292,8 +2273,8 @@ Redux::setArgs( "redux_builder_amp", $args );
2292
  array(
2293
  'id' => 'sa-feild',
2294
  'type' => 'text',
2295
- 'title' => __( 'Segment Analytics', 'accelerated-mobile-pages' ),
2296
- 'tooltip-subtitle' => __( 'Enter your Segment Analytics Key.', 'accelerated-mobile-pages' ),
2297
  'required' => array(
2298
  array('ampforwp-Segment-switch', '=' , '1')
2299
  ),
@@ -2309,12 +2290,12 @@ Redux::setArgs( "redux_builder_amp", $args );
2309
  array(
2310
  'id' => 'pa-feild',
2311
  'type' => 'text',
2312
- 'title' => __( ' Matomo (Piwik) Analytics', 'accelerated-mobile-pages' ),
2313
  'required' => array(
2314
  array('ampforwp-Piwik-switch', '=' , '1')
2315
  ),
2316
- 'desc' => __( 'Example: https://piwik.example.org/piwik.php?idsite=YOUR_SITE_ID&rec=1&action_name=TITLE&urlref=DOCUMENT_REFERRER&url=CANONICAL_URL&rand=RANDOM', 'accelerated-mobile-pages' ),
2317
- 'tooltip-subtitle' => __('Enter your Matomo (Piwik) Analytics URL.', 'accelerated-mobile-pages' ),
2318
  'default' => '#',
2319
  ),
2320
  // Quantcast
@@ -2327,7 +2308,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2327
  array(
2328
  'id' =>'amp-quantcast-analytics-code',
2329
  'type' => 'text',
2330
- 'title' => __('p-code','accelerated-mobile-pages'),
2331
  'default' => '',
2332
  'required' => array(
2333
  array('ampforwp-Quantcast-switch', '=' , '1')),
@@ -2342,7 +2323,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2342
  array(
2343
  'id' =>'amp-comscore-analytics-code-c1',
2344
  'type' => 'text',
2345
- 'title' => __('C1','accelerated-mobile-pages'),
2346
  'default' => 1,
2347
  'required' => array(
2348
  array('ampforwp-comScore-switch', '=' , '1')),
@@ -2350,7 +2331,7 @@ Redux::setArgs( "redux_builder_amp", $args );
2350
  array(
2351
  'id' =>'amp-comscore-analytics-code-c2',
2352
  'type' => 'text',
2353
- 'title' => __('C2','accelerated-mobile-pages'),
2354
  'default' => '',
2355
  'required' => array(
2356
  array('ampforwp-comScore-switch', '=' , '1')),
@@ -2365,12 +2346,12 @@ Redux::setArgs( "redux_builder_amp", $args );
2365
  array(
2366
  'id' => 'eam-feild',
2367
  'type' => 'text',
2368
- 'title' => __( 'Effective Measure Analytics', 'accelerated-mobile-pages' ),
2369
  'required' => array(
2370
  array('ampforwp-Effective-switch', '=' , '1')
2371
  ),
2372
- 'desc' => __( 'Example: https://s.effectivemeasure.net/d/6/i?pu=CANONICAL_URL&ru=DOCUMENT_REFERRER&rnd=RANDOM', 'accelerated-mobile-pages' ),
2373
- 'tooltip-subtitle' => __('Enter your Effective Measure URL.', 'accelerated-mobile-pages' ),
2374
  'default' => '#',
2375
  ),
2376
  // StatCounter
@@ -2383,12 +2364,12 @@ Redux::setArgs( "redux_builder_amp", $args );
2383
  array(
2384
  'id' => 'sc-feild',
2385
  'type' => 'text',
2386
- 'title' => __( 'StatCounter', 'accelerated-mobile-pages' ),
2387
  'required' => array(
2388
  array('ampforwp-StatCounter-switch', '=' , '1')
2389
  ),
2390
- 'desc' => __( 'Example: https://c.statcounter.com/PROJECT_ID/0/SECURITY_CODE/1/', 'accelerated-mobile-pages' ),
2391
- 'tooltip-subtitle' => __('Enter your StatCounter URL.', 'accelerated-mobile-pages' ),
2392
  'default' => '#',
2393
  ),
2394
  // Histats Analytics
@@ -2401,11 +2382,11 @@ Redux::setArgs( "redux_builder_amp", $args );
2401
  array(
2402
  'id' => 'histats-feild',
2403
  'type' => 'text',
2404
- 'title' => __( 'Histats Analytics', 'accelerated-mobile-pages' ),
2405
  'required' => array(
2406
  array('ampforwp-Histats-switch', '=' , '1')
2407
  ),
2408
- 'tooltip-subtitle' => __( 'Enter your Histats Analytics ID.', 'accelerated-mobile-pages' ),
2409
  'desc' => 'Tutorial: <a href="https://ampforwp.com/tutorials/how-to-get-histats-analytics-id/">How to get Histats Analytics ID for AMP?</a>',
2410
  'default' => '',
2411
  ),
@@ -2419,11 +2400,11 @@ Redux::setArgs( "redux_builder_amp", $args );
2419
  array(
2420
  'id' =>'amp-Yandex-Metrika-analytics-code',
2421
  'type' => 'text',
2422
- 'title' => __('Yandex Metrika Analytics ID','accelerated-mobile-pages'),
2423
  'default' => '',
2424
  'required' => array(
2425
  array('ampforwp-Yandex-switch', '=' , '1')),
2426
- 'tooltip-subtitle' => __( 'Enter your Counter ID.', 'accelerated-mobile-pages' ),
2427
  ),
2428
  // Chartbeat Analytics
2429
  array(
@@ -2436,11 +2417,11 @@ Redux::setArgs( "redux_builder_amp", $args );
2436
  array(
2437
  'id' =>'amp-Chartbeat-analytics-code',
2438
  'type' => 'text',
2439
- 'title' => __('Chartbeat Analytics ID','accelerated-mobile-pages'),
2440
  'default' => '',
2441
  'required' => array(
2442
  array('ampforwp-Chartbeat-switch', '=' , '1')),
2443
- 'tooltip-subtitle' => __( 'Enter your Account ID.', 'accelerated-mobile-pages' ),
2444
  ),
2445
  // Alexa Metrics
2446
  array(
@@ -2452,21 +2433,21 @@ Redux::setArgs( "redux_builder_amp", $args );
2452
  array(
2453
  'id' => 'ampforwp-alexa-account',
2454
  'type' => 'text',
2455
- 'title' => __( 'Alexa Metrics Account', 'accelerated-mobile-pages' ),
2456
  'required' => array(
2457
  array('ampforwp-Alexa-switch', '=' , '1')
2458
  ),
2459
- 'tooltip-subtitle' => __( 'Enter Account Number given by Alexa Metrics', 'accelerated-mobile-pages' ),
2460
  'default' => '',
2461
  ),
2462
  array(
2463
  'id' => 'ampforwp-alexa-domain',
2464
  'type' => 'text',
2465
- 'title' => __( 'Alexa Metrics Domain', 'accelerated-mobile-pages' ),
2466
  'required' => array(
2467
  array('ampforwp-Alexa-switch', '=' , '1')
2468
  ),
2469
- 'tooltip-subtitle' => __( 'Enter the domain', 'accelerated-mobile-pages' ),
2470
  'default' => '',
2471
  ),
2472
  // AFS Analytics
@@ -2479,11 +2460,11 @@ Redux::setArgs( "redux_builder_amp", $args );
2479
  array(
2480
  'id' => 'ampforwp-afs-siteid',
2481
  'type' => 'text',
2482
- 'title' => __( 'Website ID', 'accelerated-mobile-pages' ),
2483
  'required' => array(
2484
  array('ampforwp-afs-analytics-switch', '=' , '1')
2485
  ),
2486
- 'tooltip-subtitle' => __( 'Enter the Website ID', 'accelerated-mobile-pages' ),
2487
  'default' => '',
2488
  'desc' => 'example: 00000003',
2489
  ),
@@ -2500,24 +2481,24 @@ Redux::setArgs( "redux_builder_amp", $args );
2500
  array(
2501
  'id' => 'ampforwp-adobe-host',
2502
  'type' => 'text',
2503
- 'title' => __( 'Host Name', 'accelerated-mobile-pages' ),
2504
  'required' => array(
2505
  array('amp-use-gtm-option', '=' , '0'),
2506
  array('ampforwp-adobe-analytics-switch', '=' , '1')
2507
  ),
2508
- 'tooltip-subtitle' => __( 'Enter the Website domain', 'accelerated-mobile-pages' ),
2509
  'default' => '',
2510
  'desc' => 'example: metrics.example.com',
2511
  ),
2512
  array(
2513
  'id' => 'ampforwp-adobe-reportsuiteid',
2514
  'type' => 'text',
2515
- 'title' => __( 'ReportSuite ID', 'accelerated-mobile-pages' ),
2516
  'required' => array(
2517
  array('amp-use-gtm-option', '=' , '0'),
2518
  array('ampforwp-adobe-analytics-switch', '=' , '1')
2519
  ),
2520
- 'tooltip-subtitle' => __( 'Enter the ReportSuite ID', 'accelerated-mobile-pages' ),
2521
  'default' => '',
2522
  'desc' => 'example: 00000003',
2523
  ),
@@ -2557,8 +2538,8 @@ if( ! is_plugin_active('structured-data-for-wp/structured-data-for-wp.php') ) {
2557
  $custom_fields[] = array(
2558
  'id' => 'ampforwp-sd-type-'. $post_type,
2559
  'type' => 'select',
2560
- 'title' => __($post_type, 'accelerated-mobile-pages'),
2561
- 'tooltip-subtitle' => __('Select the Structured Data Type for '.$post_type, 'accelerated-mobile-pages'),
2562
  'options' => ampforwp_get_sd_types(),
2563
  'default' => 'BlogPosting',
2564
  );
@@ -2586,7 +2567,7 @@ function ampforwp_add_sd_fields($fields){
2586
  $fields[] = array(
2587
  'id' => 'ampforwp-sd_modules_section',
2588
  'type' => 'section',
2589
- 'title' => __('Structured Data has been Improved!', 'accelerated-mobile-pages'),
2590
  'indent' => true,
2591
  'layout_type' => 'accordion',
2592
  'accordion-open'=> 1,
@@ -2608,7 +2589,7 @@ function ampforwp_add_sd_fields($fields){
2608
  <div class="col-1">
2609
  '.(!is_plugin_active('schema-and-structured-data-for-wp/structured-data-for-wp.php')?
2610
  '
2611
- <div class="ampforwp-recommendation-btn update-message ampforwp-modules ampforwp-activation-call-module-upgrade " id="ampforwp-structure-data-activation-call">
2612
  <p>Upgrade for Free</p>
2613
  </div>' :
2614
  '<a href="'.admin_url('admin.php?page=structured_data_options&tab=general&reference=ampforwp').'"><div class="ampforwp-recommendation-btn updated-message"><p>Go to Structure Data settings</p></div></a>'
@@ -2620,15 +2601,11 @@ function ampforwp_add_sd_fields($fields){
2620
 
2621
  );
2622
 
2623
-
2624
-
2625
-
2626
-
2627
  if( !is_plugin_active('schema-and-structured-data-for-wp/structured-data-for-wp.php') ) {
2628
  $fields[] = array(
2629
  'id' => 'ampforwp-sd_1',
2630
  'type' => 'section',
2631
- 'title' => __('Schema & Structured Data', 'accelerated-mobile-pages'),
2632
  'indent' => true,
2633
  'layout_type' => 'accordion',
2634
  'accordion-open'=> 1,
@@ -2636,23 +2613,23 @@ function ampforwp_add_sd_fields($fields){
2636
  $fields[] = array(
2637
  'id' => 'ampforwp-sd-type-posts',
2638
  'type' => 'select',
2639
- 'title' => __('Posts', 'accelerated-mobile-pages'),
2640
- 'tooltip-subtitle' => __('Select the Structured Data Type for Posts', 'accelerated-mobile-pages'),
2641
  'options' => ampforwp_get_sd_types(),
2642
  'default' => 'BlogPosting',
2643
  );
2644
  $fields[] = array(
2645
  'id' => 'ampforwp-sd-type-pages',
2646
  'type' => 'select',
2647
- 'title' => __('Pages', 'accelerated-mobile-pages'),
2648
- 'tooltip-subtitle' => __('Select the Structured Data Type for Pages', 'accelerated-mobile-pages'),
2649
  'options' => ampforwp_get_sd_types(),
2650
  'default' => 'BlogPosting',
2651
  );
2652
  $fields[] = array(
2653
  'id' => 'ampforwp-sd_2',
2654
  'type' => 'section',
2655
- 'title' => __('Default Values Setup', 'accelerated-mobile-pages'),
2656
  'indent' => true,
2657
  'layout_type' => 'accordion',
2658
  'accordion-open'=> 1,
@@ -2662,12 +2639,12 @@ function ampforwp_add_sd_fields($fields){
2662
  'id' => 'amp-structured-data-logo',
2663
  'type' => 'media',
2664
  'url' => true,
2665
- 'title' => __('Default Structured Data Logo', 'accelerated-mobile-pages'),
2666
- 'tooltip-subtitle' => __('Upload the logo you want to show in Google Structured Data. ', 'accelerated-mobile-pages'),
2667
  );
2668
  $fields[] = array(
2669
  'id' => 'ampforwp-sd-logo-dimensions',
2670
- 'title' => __('Custom Logo Size', 'accelerated-mobile-pages'),
2671
  'type' => 'switch',
2672
  'default' => 0,
2673
  );
@@ -2675,8 +2652,8 @@ function ampforwp_add_sd_fields($fields){
2675
  'class'=>'child_opt child_opt_arrow',
2676
  'id' => 'ampforwp-sd-logo-width',
2677
  'type' => 'text',
2678
- 'title' => __('Logo Width', 'accelerated-mobile-pages'),
2679
- 'tooltip-subtitle' => __('Default width is 600 pixels', 'accelerated-mobile-pages'),
2680
  'default' => '600',
2681
  'required'=>array('ampforwp-sd-logo-dimensions','=','1'),
2682
  );
@@ -2684,8 +2661,8 @@ function ampforwp_add_sd_fields($fields){
2684
  'class'=>'child_opt',
2685
  'id' => 'ampforwp-sd-logo-height',
2686
  'type' => 'text',
2687
- 'title' => __('Logo Height', 'accelerated-mobile-pages'),
2688
- 'tooltip-subtitle' => __('Default height is 60 pixels', 'accelerated-mobile-pages'),
2689
  'default' => '60',
2690
  'required'=>array('ampforwp-sd-logo-dimensions','=','1'),
2691
  );
@@ -2693,48 +2670,42 @@ function ampforwp_add_sd_fields($fields){
2693
  'id' => 'amp-structured-data-placeholder-image',
2694
  'type' => 'media',
2695
  'url' => true,
2696
- 'title' => __('Default Post Image', 'accelerated-mobile-pages'),
2697
- 'tooltip-subtitle' => __('Upload the Image you want to show as Placeholder Image.', 'accelerated-mobile-pages'),
2698
- 'placeholder' => __('when there is no featured image set in the post','accelerated-mobile-pages'),
2699
  );
2700
  $fields[] = array(
2701
  'id' => 'amp-structured-data-placeholder-image-width',
2702
- 'title' => __('Default Post Image Width', 'accelerated-mobile-pages'),
2703
  'type' => 'text',
2704
  'placeholder' => '550',
2705
- 'tooltip-subtitle' => __('Please don\'t add "PX" in the image size.','accelerated-mobile-pages'),
2706
  'default' => '700'
2707
  );
2708
  $fields[] = array(
2709
  'id' => 'amp-structured-data-placeholder-image-height',
2710
- 'title' => __('Default Post Image Height', 'accelerated-mobile-pages'),
2711
  'type' => 'text',
2712
  'placeholder' => '350',
2713
- 'tooltip-subtitle' => __('Please don\'t add "PX" in the image size.','accelerated-mobile-pages'),
2714
  'default' => '550'
2715
  );
2716
  $fields[] = array(
2717
  'id' => 'amporwp-structured-data-video-thumb-url',
2718
  'type' => 'media',
2719
  'url' => true,
2720
- 'title' => __('Default Thumbnail for VideoObject', 'accelerated-mobile-pages'),
2721
- 'tooltip-subtitle' => __('Upload the Thumbnail you want to show as Video Thumbnail.', 'accelerated-mobile-pages'),
2722
- 'placeholder' => __('When there is no thumbnail set for the video','accelerated-mobile-pages'),
2723
  );
2724
  }// is_plugin_active('schema-and-structured-data-for-wp/structured-data-for-wp.php') Closed
2725
-
2726
-
2727
-
2728
-
2729
-
2730
-
2731
 
2732
  return $fields;
2733
  }
2734
  }
2735
  // Structured Data
2736
  Redux::setSection( $opt_name, array(
2737
- 'title' => __( 'Structured Data', 'accelerated-mobile-pages' ),
2738
  'id' => 'opt-structured-data',
2739
  'class' => 'ampforwp_new_features ',
2740
  'subsection' => true,
@@ -2745,7 +2716,7 @@ function ampforwp_add_sd_fields($fields){
2745
 
2746
  // Notifications SECTION
2747
  Redux::setSection( $opt_name, array(
2748
- 'title' => __( 'Notice Bar & GDPR', 'accelerated-mobile-pages' ),
2749
  'desc' => $cta_desc ,
2750
  'id' => 'amp-notifications',
2751
  'subsection' => true,
@@ -2753,7 +2724,7 @@ function ampforwp_add_sd_fields($fields){
2753
  array(
2754
  'id' => 'ampforwp-notice_2',
2755
  'type' => 'section',
2756
- 'title' => __('Notice Bar (Cookie Consent)', 'accelerated-mobile-pages'),
2757
  'indent' => true,
2758
  'layout_type' => 'accordion',
2759
  'accordion-open'=> 1,
@@ -2763,9 +2734,9 @@ function ampforwp_add_sd_fields($fields){
2763
  array(
2764
  'id' =>'amp-enable-notifications',
2765
  'type' => 'switch',
2766
- 'title' => __('Notifications', 'accelerated-mobile-pages'),
2767
  'default' => '',
2768
- 'tooltip-subtitle' => __('Show notifications on all of your AMP pages for cookie purposes, or anything else.', 'accelerated-mobile-pages'),
2769
  'true' => 'Enabled',
2770
  'false' => 'Disabled',
2771
  'required' => array('amp-gdpr-compliance-switch', '=' , '0')
@@ -2773,26 +2744,26 @@ function ampforwp_add_sd_fields($fields){
2773
  array(
2774
  'class' => 'child_opt child_opt_arrow',
2775
  'id' => 'amp-notification-text',
2776
- 'title' => __('Notice Content', 'accelerated-mobile-pages'),
2777
  'type' => 'text',
2778
  'required' => array('amp-enable-notifications', '=' , '1'),
2779
- 'default' => __('This website uses cookies.','accelerated-mobile-pages'),
2780
- 'placeholder' => __('Enter Text here','accelerated-mobile-pages'),
2781
  ),
2782
  array(
2783
  'class' => 'child_opt',
2784
  'id' => 'amp-accept-button-text',
2785
- 'title' => __('Button Text', 'accelerated-mobile-pages'),
2786
  'type' => 'text',
2787
  'required' => array('amp-enable-notifications', '=' , '1'),
2788
- 'default' => __('Accept','accelerated-mobile-pages'),
2789
- 'placeholder' => __('Enter Text here','accelerated-mobile-pages'),
2790
  ),
2791
 
2792
  array(
2793
  'id' => 'ampforwp-notice_1',
2794
  'type' => 'section',
2795
- 'title' => __('GDPR (General Data Protection Regulation)', 'accelerated-mobile-pages'),
2796
  'indent' => true,
2797
  'layout_type' => 'accordion',
2798
  'accordion-open'=> 1,
@@ -2800,13 +2771,13 @@ function ampforwp_add_sd_fields($fields){
2800
  array(
2801
  'id' =>'amp-gdpr-compliance-switch',
2802
  'type' => 'switch',
2803
- 'title' => __('GDPR Compliancy', 'accelerated-mobile-pages'),
2804
  'default' => 0,
2805
  'tooltip-subtitle' => 'Currently It is available to only EEA countries. Check <a href="https://github.com/ampproject/amphtml/blob/master/extensions/amp-geo/0.1/amp-geo-presets.js" target="_blank">here</a> for the list of EEA Countries'
2806
  ),
2807
  array(
2808
  'id' => 'gdpr-type',
2809
- 'title' => __('GDPR Designs', 'accelerated-mobile-pages'),
2810
  'type' => 'image_select',
2811
  'options'=> array(
2812
  '1' => array(
@@ -2825,7 +2796,7 @@ function ampforwp_add_sd_fields($fields){
2825
  'class' => 'child_opt child_opt_arrow',
2826
  'id' =>'amp-gdpr-compliance-headline-text',
2827
  'type' => 'text',
2828
- 'title' => __('Headline Text', 'accelerated-mobile-pages'),
2829
  'default' => 'Headline',
2830
  'required' => array('amp-gdpr-compliance-switch', '=' , '1'),
2831
  ),
@@ -2834,8 +2805,8 @@ function ampforwp_add_sd_fields($fields){
2834
  'tooltip-subtitle' => 'This is the message that you want to share with the audience',
2835
  'id' =>'amp-gdpr-compliance-textarea',
2836
  'type' => 'textarea',
2837
- 'title' => __('Message to Visitor', 'accelerated-mobile-pages'),
2838
- 'subtitle' => __('', 'accelerated-mobile-pages'),
2839
  'default' => '',
2840
  'required' => array( array('amp-gdpr-compliance-switch', '=' , '1', ), array('gdpr-type', '=' , '1' ) ),
2841
  ),
@@ -2844,7 +2815,7 @@ function ampforwp_add_sd_fields($fields){
2844
  'class' => 'child_opt',
2845
  'id' =>'amp-gdpr-compliance-accept-text',
2846
  'type' => 'text',
2847
- 'title' => __('Accept Button Text', 'accelerated-mobile-pages'),
2848
  'default' => 'Accept',
2849
  'required' => array('amp-gdpr-compliance-switch', '=' , '1'),
2850
  ),
@@ -2852,7 +2823,7 @@ function ampforwp_add_sd_fields($fields){
2852
  'class' => 'child_opt',
2853
  'id' =>'amp-gdpr-compliance-reject-text',
2854
  'type' => 'text',
2855
- 'title' => __('Reject Button Text', 'accelerated-mobile-pages'),
2856
  'default' => 'Reject',
2857
  'required' => array('amp-gdpr-compliance-switch', '=' , '1'),
2858
  ),
@@ -2860,7 +2831,7 @@ function ampforwp_add_sd_fields($fields){
2860
  'class' => 'child_opt',
2861
  'id' =>'amp-gdpr-compliance-settings-text',
2862
  'type' => 'text',
2863
- 'title' => __('Settings Button Text', 'accelerated-mobile-pages'),
2864
  'default' => 'Privacy Settings',
2865
  'required' => array('amp-gdpr-compliance-switch', '=' , '1'),
2866
  ),
@@ -2868,8 +2839,8 @@ function ampforwp_add_sd_fields($fields){
2868
  'class' => 'child_opt',
2869
  'id' =>'amp-gdpr-compliance-for-more-privacy-info',
2870
  'type' => 'text',
2871
- 'title' => __('For More information', 'accelerated-mobile-pages'),
2872
- 'tooltip-subtitle' => __('text before the privacy page button.', 'accelerated-mobile-pages'),
2873
  'default' => 'For More information about Privacy',
2874
  'required' => array( array('amp-gdpr-compliance-switch', '=' , '1', ), array('gdpr-type', '=' , '1' ) ),
2875
  ),
@@ -2878,8 +2849,8 @@ function ampforwp_add_sd_fields($fields){
2878
  'class' => 'child_opt',
2879
  'id' =>'amp-gdpr-compliance-select-privacy-page',
2880
  'type' => 'select',
2881
- 'title' => __('Select the Privacy Page', 'accelerated-mobile-pages'),
2882
- 'tooltip-subtitle' => __('Select the Privacy Page to display.', 'accelerated-mobile-pages'),
2883
  'default' => 0,
2884
  'data' => 'pages',
2885
  'required' => array('amp-gdpr-compliance-switch', '=' , '1'),
@@ -2888,7 +2859,7 @@ function ampforwp_add_sd_fields($fields){
2888
  'class' => 'child_opt',
2889
  'id' =>'amp-gdpr-compliance-privacy-page-button-text',
2890
  'type' => 'text',
2891
- 'title' => __('Privacy Page Button Text', 'accelerated-mobile-pages'),
2892
  'default' => 'Click Here',
2893
  'required' => array('amp-gdpr-compliance-switch', '=' , '1'),
2894
  ),
@@ -2896,7 +2867,7 @@ function ampforwp_add_sd_fields($fields){
2896
  array(
2897
  'id' => 'ampforwp-notice_popup',
2898
  'type' => 'section',
2899
- 'title' => __('PopUp for AMP', 'accelerated-mobile-pages'),
2900
  'indent' => true,
2901
  'layout_type' => 'accordion',
2902
  'accordion-open'=> 1,
@@ -2913,7 +2884,7 @@ function ampforwp_add_sd_fields($fields){
2913
 
2914
  // Push Notifications section
2915
  Redux::setSection( $opt_name, array(
2916
- 'title' => __( 'Push Notifications', 'accelerated-mobile-pages' ),
2917
  // 'icon' => 'el el-podcast',
2918
  'id' => 'ampforwp-push-notifications',
2919
  'desc' => " ",
@@ -2923,7 +2894,7 @@ function ampforwp_add_sd_fields($fields){
2923
  array(
2924
  'id' => 'ampforwp-pushnot-1',
2925
  'type' => 'section',
2926
- 'title' => __('Push Notification Support', 'accelerated-mobile-pages'),
2927
  'indent' => true,
2928
  'layout_type' => 'accordion',
2929
  'accordion-open'=> 1,
@@ -2949,7 +2920,7 @@ function ampforwp_add_sd_fields($fields){
2949
  array(
2950
  'id' => 'ampforwp-onesignal-positioning',
2951
  'type' => 'section',
2952
- 'title' => __('Positioning', 'accelerated-mobile-pages'),
2953
  'required' => array(
2954
  array( 'ampforwp-web-push-onesignal', '=' , 1 ),
2955
  array( 'amp-use-pot', '=' , 0 )
@@ -2981,7 +2952,7 @@ function ampforwp_add_sd_fields($fields){
2981
  array(
2982
  'id' => 'translation',
2983
  'type' => 'section',
2984
- 'title' => __('Translation', 'accelerated-mobile-pages'),
2985
  'indent' => true,
2986
  'layout_type' => 'accordion',
2987
  'accordion-open'=> 1,
@@ -2989,21 +2960,21 @@ function ampforwp_add_sd_fields($fields){
2989
  array(
2990
  'id' => 'ampforwp-onesignal-translator-subscribe',
2991
  'type' => 'text',
2992
- 'title' => __('Subscribe', 'accelerated-mobile-pages'),
2993
- 'default' => __('Subscribe to updates','accelerated-mobile-pages'),
2994
- 'placeholder'=>__('Add some text','accelerated-mobile-pages'),
2995
  ),
2996
  array(
2997
  'id' => 'ampforwp-onesignal-translator-unsubscribe',
2998
  'type' => 'text',
2999
- 'title' => __('Unsubsribe', 'accelerated-mobile-pages'),
3000
- 'default' => __('Unsubscribe from updates','accelerated-mobile-pages'),
3001
- 'placeholder'=>__('Add some text','accelerated-mobile-pages'),
3002
  ),
3003
  array(
3004
  'id' => 'ampforwp-onesignal-exper',
3005
  'type' => 'section',
3006
- 'title' => __('Experimental', 'accelerated-mobile-pages'),
3007
  'required' => array(
3008
  array( 'ampforwp-web-push-onesignal', '=' , 1 ),
3009
  array( 'amp-use-pot', '=' , 0 )
@@ -3026,7 +2997,7 @@ function ampforwp_add_sd_fields($fields){
3026
  'id' => 'ampforwp-onesignal-subdomain',
3027
  'type' => 'text',
3028
  'title' => 'Subdomain',
3029
- 'desc' => __('Example: ampforwp', 'accelerated-mobile-pages'),
3030
  'required' => array(
3031
  array('ampforwp-web-push-onesignal', '=' , '1'),
3032
  array('ampforwp-onesignal-http-site', '=','1')),
@@ -3038,7 +3009,7 @@ function ampforwp_add_sd_fields($fields){
3038
  $forms_support[] = array(
3039
  'id' => 'ampforwp-cfs_1',
3040
  'type' => 'section',
3041
- 'title' => __('CF7 Compatibility', 'accelerated-mobile-pages'),
3042
  'indent' => true,
3043
  'layout_type' => 'accordion',
3044
  'accordion-open'=> 1,
@@ -3046,7 +3017,7 @@ $forms_support[] = array(
3046
  $forms_support[] = array(
3047
  'id' =>'amp-enable-contactform',
3048
  'type' => 'switch',
3049
- 'title' => __('Contact Form 7 Support', 'accelerated-mobile-pages'),
3050
  'default' => '',
3051
  'true' => 'Enabled',
3052
  'false' => 'Disabled',
@@ -3065,7 +3036,7 @@ $forms_support[] = array(
3065
  $forms_support[] = array(
3066
  'id' => 'ampforwp-cfs_2',
3067
  'type' => 'section',
3068
- 'title' => __('Gravity Forms Compatibility', 'accelerated-mobile-pages'),
3069
  'indent' => true,
3070
  'layout_type' => 'accordion',
3071
  'accordion-open'=> 1,
@@ -3073,7 +3044,7 @@ $forms_support[] = array(
3073
  $forms_support[] = array(
3074
  'id' =>'amp-enable-gravityforms_support',
3075
  'type' => 'switch',
3076
- 'title' => __('Gravity Forms Support', 'accelerated-mobile-pages'),
3077
  'default' => '',
3078
  'true' => 'Enabled',
3079
  'false' => 'Disabled',
@@ -3091,7 +3062,7 @@ $forms_support[] = array(
3091
  $forms_support[] = array(
3092
  'id' => 'ampforwp-ninja-forms',
3093
  'type' => 'section',
3094
- 'title' => __('Ninja Forms Compatibility', 'accelerated-mobile-pages'),
3095
  'indent' => true,
3096
  'layout_type' => 'accordion',
3097
  'accordion-open'=> 1,
@@ -3099,7 +3070,7 @@ $forms_support[] = array(
3099
  $forms_support[] = array(
3100
  'id' =>'amp-enable-ninja-forms-support',
3101
  'type' => 'switch',
3102
- 'title' => __('Ninja Forms Support', 'accelerated-mobile-pages'),
3103
  'default' => '',
3104
  'true' => 'Enabled',
3105
  'false' => 'Disabled',
@@ -3116,7 +3087,7 @@ $forms_support[] = array(
3116
 
3117
  // Contact Form SECTION
3118
  Redux::setSection( $opt_name, array(
3119
- 'title' => __( 'Contact Form', 'accelerated-mobile-pages' ),
3120
  // 'desc' => 'Contact forms will automatically be converted into AMP compatible.',
3121
  'id' => 'amp-contact',
3122
  'subsection' => true,
@@ -3126,7 +3097,7 @@ $forms_support[] = array(
3126
 
3127
  // comments
3128
  Redux::setSection( $opt_name, array(
3129
- 'title' => __( 'Comments', 'accelerated-mobile-pages' ),
3130
  'desc' => $comment_desc,
3131
  'id' => 'disqus-comments',
3132
  'subsection' => true,
@@ -3134,7 +3105,7 @@ $forms_support[] = array(
3134
  array(
3135
  'id' => 'ampforwp-display-comments',
3136
  'type' => 'section',
3137
- 'title' => __('Display', 'accelerated-mobile-pages'),
3138
  'indent' => true,
3139
  'layout_type' => 'accordion',
3140
  'accordion-open'=> 1,
@@ -3142,30 +3113,30 @@ $forms_support[] = array(
3142
  array(
3143
  'id' => 'ampforwp-display-on-pages',
3144
  'type' => 'switch',
3145
- 'title' => __('Display on Pages', 'accelerated-mobile-pages'),
3146
- 'tooltip-subtitle' => __('Enable/Disable comments on pages using this switch.', 'accelerated-mobile-pages'),
3147
  'default' => 1
3148
  ),
3149
  array(
3150
  'id' => 'ampforwp-display-on-posts',
3151
  'type' => 'switch',
3152
- 'title' => __('Display on Posts', 'accelerated-mobile-pages'),
3153
- 'tooltip-subtitle' => __('Enable/Disable comments on posts using this switch.', 'accelerated-mobile-pages'),
3154
  'default' => 1
3155
  ),
3156
 
3157
  array(
3158
  'id' => 'ampforwp-comments',
3159
  'type' => 'section',
3160
- 'title' => __('Discussion', 'accelerated-mobile-pages'),
3161
  'indent' => true,
3162
  'layout_type' => 'accordion',
3163
  'accordion-open'=> 1,
3164
  ),
3165
  array(
3166
- 'title' =>__('WordPress Comments','accelerated-mobile-pages'),
3167
  'id' => 'wordpress-comments-support',
3168
- 'tooltip-subtitle' => __('Enable/Disable WordPress comments using this switch.', 'accelerated-mobile-pages'),
3169
  'type' => 'switch',
3170
  'default' => 1,
3171
  ),
@@ -3173,8 +3144,8 @@ $forms_support[] = array(
3173
  'class' => 'child_opt child_opt_arrow',
3174
  'id' => 'ampforwp-number-of-comments',
3175
  'type' => 'text',
3176
- 'tooltip-subtitle' => __('This refers to the normal comments','accelerated-mobile-pages'),
3177
- 'title' => __('No of Comments', 'accelerated-mobile-pages'),
3178
  'default' => 10,
3179
  'required' => array('wordpress-comments-support' , '=' , 1
3180
  ),
@@ -3183,8 +3154,8 @@ $forms_support[] = array(
3183
  'class' => 'child_opt child_opt_arrow',
3184
  'id' => 'ampforwp-display-avatar',
3185
  'type' => 'switch',
3186
- 'title' => __('Display on User Avatar', 'accelerated-mobile-pages'),
3187
- 'tooltip-subtitle' => __('Enable/Disable user Avatar.', 'accelerated-mobile-pages'),
3188
  'default' => 1,
3189
  'required' => array('wordpress-comments-support' , '=' , 1
3190
  ),
@@ -3192,16 +3163,16 @@ $forms_support[] = array(
3192
  array(
3193
  'id' => 'ampforwp-disqus-comments-support',
3194
  'type' => 'switch',
3195
- 'title' => __('Disqus', 'accelerated-mobile-pages'),
3196
- 'tooltip-subtitle' => __('Enable/Disable Disqus comments using this switch.', 'accelerated-mobile-pages'),
3197
  'default' => 0
3198
  ),
3199
  array(
3200
  'class' => 'child_opt child_opt_arrow',
3201
  'id' => 'ampforwp-disqus-comments-name',
3202
  'type' => 'text',
3203
- 'title' => __('Disqus Name', 'accelerated-mobile-pages'),
3204
- 'tooltip-subtitle' => __('Eg: https://xyz.disqus.com', 'accelerated-mobile-pages'),
3205
  'required' => array('ampforwp-disqus-comments-support', '=' , '1'),
3206
  'default' => ''
3207
  ),
@@ -3210,8 +3181,8 @@ $forms_support[] = array(
3210
  'class' => 'child_opt',
3211
  'id' => 'ampforwp-disqus-host-position',
3212
  'type' => 'switch',
3213
- 'title' => __('Host on AMPforWP API', 'accelerated-mobile-pages'),
3214
- 'tooltip-subtitle' => __('Use AMPforWP secure servers to serve Comments file. Recommended if your site is non HTTPS', 'accelerated-mobile-pages'),
3215
  'default' => 1,
3216
  'required' => array('ampforwp-disqus-comments-support', '=' , '1'),
3217
  ),
@@ -3220,15 +3191,15 @@ $forms_support[] = array(
3220
  'class' => 'child_opt',
3221
  'id' => 'ampforwp-disqus-host-file',
3222
  'type' => 'text',
3223
- 'title' => __('Disqus Host File', 'accelerated-mobile-pages'),
3224
  'desc' => '<a href="https://ampforwp.com/host-disqus-comments/" target="_blank"> Click here to know, How to Setup Disqus Host file on your servers </a>',
3225
- 'tooltip-subtitle' => __('Enter the URL of host file', 'accelerated-mobile-pages'),
3226
  'placeholder' => 'https://comments.example.com/disqus.php',
3227
  'required' => array('ampforwp-disqus-host-position', '=' , '0'),
3228
  ),
3229
  array(
3230
  'id' => 'ampforwp-disqus-layout',
3231
- 'title' => __('Disqus Layout', 'accelerated-mobile-pages'),
3232
  'type' => 'select',
3233
  'options' => array(
3234
  'fixed' => 'Fixed',
@@ -3241,7 +3212,7 @@ $forms_support[] = array(
3241
  array(
3242
  'id' => 'ampforwp-disqus-height',
3243
  'type' => 'text',
3244
- 'title' => __('Disqus Iframe Height', 'accelerated-mobile-pages'),
3245
  'placeholder' => 'Enter the height',
3246
  'default' => '420',
3247
  'required' => array('ampforwp-disqus-layout', '=' , 'fixed'),
@@ -3249,16 +3220,16 @@ $forms_support[] = array(
3249
  array(
3250
  'id' => 'ampforwp-facebook-comments-support',
3251
  'type' => 'switch',
3252
- 'title' => __('Facebook Comments', 'accelerated-mobile-pages'),
3253
- 'tooltip-subtitle' => __('Enable/Disable Facebook comments using this switch.', 'accelerated-mobile-pages'),
3254
  'default' => 0,
3255
  ),
3256
  array(
3257
  'class' => 'child_opt child_opt_arrow',
3258
  'id' => 'ampforwp-number-of-fb-no-of-comments',
3259
  'type' => 'text',
3260
- 'tooltip-subtitle' => __('Enter the number of comments','accelerated-mobile-pages'),
3261
- 'title' => __('No of Comments', 'accelerated-mobile-pages'),
3262
  'default' => 10,
3263
  'required' => array(
3264
  array('ampforwp-facebook-comments-support', '=' , 1),
@@ -3268,8 +3239,8 @@ $forms_support[] = array(
3268
  'class' => 'child_opt child_opt_arrow',
3269
  'id' => 'ampforwp-fb-comments-lang',
3270
  'type' => 'text',
3271
- 'tooltip-subtitle' => __('Enter the Language code','accelerated-mobile-pages'),
3272
- 'title' => __('Language', 'accelerated-mobile-pages'),
3273
  'desc' => '<a href="https://developers.facebook.com/docs/internationalization" target="_blank">Locales and Languages Supported by Facebook </a>',
3274
  'default' => get_locale(),
3275
  'required' => array(
@@ -3280,16 +3251,16 @@ $forms_support[] = array(
3280
  array(
3281
  'id' => 'ampforwp-vuukle-comments-support',
3282
  'type' => 'switch',
3283
- 'title' => __('Vuukle Comments', 'accelerated-mobile-pages'),
3284
- 'tooltip-subtitle' => __('Enable/Disable Vuukle comments using this switch.', 'accelerated-mobile-pages'),
3285
  'default' => 0,
3286
  ),
3287
  array(
3288
  'class' => 'child_opt child_opt_arrow',
3289
  'id' => 'ampforwp-vuukle-comments-apiKey',
3290
  'type' => 'text',
3291
- 'tooltip-subtitle' => __('Enter the API key of Vuukle','accelerated-mobile-pages'),
3292
- 'title' => __('API Key', 'accelerated-mobile-pages'),
3293
  'default' => '',
3294
  'desc' => "For Example xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
3295
  'required' => array(
@@ -3300,16 +3271,16 @@ $forms_support[] = array(
3300
  array(
3301
  'id' => 'ampforwp-spotim-comments-support',
3302
  'type' => 'switch',
3303
- 'title' => __('Spot.IM Conversation', 'accelerated-mobile-pages'),
3304
- 'tooltip-subtitle' => __('Enable/Disable Spot.IM Conversation using this switch.', 'accelerated-mobile-pages'),
3305
  'default' => 0,
3306
  ),
3307
  array(
3308
  'class' => 'child_opt child_opt_arrow',
3309
  'id' => 'ampforwp-spotim-comments-apiKey',
3310
  'type' => 'text',
3311
- 'tooltip-subtitle' => __('Enter the SPOT_ID of Spot.IM','accelerated-mobile-pages'),
3312
- 'title' => __('SPOT ID', 'accelerated-mobile-pages'),
3313
  'default' => '',
3314
  'desc' => "For Example xxxxxxxx-xxxx-xxxx-xxxx",
3315
  'required' => array(
@@ -3320,28 +3291,28 @@ $forms_support[] = array(
3320
  )
3321
  ) );
3322
 
3323
- function fb_instant_article() {
3324
  $feedname = '';
3325
  $fb_instant_article_feed = '';
3326
  $input = '';
3327
 
3328
  $feedname = 'instant_articles';
3329
  $fb_instant_article_feed = trailingslashit( site_url() ).$feedname ;
3330
- $input = '<a href=" '. $fb_instant_article_feed . '" target="_blank">' . esc_url( $fb_instant_article_feed ). '</a>' ;
3331
 
3332
  return strip_tags($input, '<a>');
3333
  }
3334
 
3335
  // Facebook Instant Articles
3336
  Redux::setSection( $opt_name, array(
3337
- 'title' => __( 'Instant Articles', 'accelerated-mobile-pages' ),
3338
  'id' => 'fb-instant-article',
3339
  'subsection' => true,
3340
  'fields' => array(
3341
  array(
3342
  'id' => 'ampforwp-fbia_1',
3343
  'type' => 'section',
3344
- 'title' => __('Facebook Instant Articles Setup', 'accelerated-mobile-pages'),
3345
  'indent' => true,
3346
  'layout_type' => 'accordion',
3347
  'accordion-open'=> 1,
@@ -3349,32 +3320,32 @@ Redux::setSection( $opt_name, array(
3349
  array(
3350
  'id' =>'fb-instant-article-switch',
3351
  'type' => 'switch',
3352
- 'title' => __('Instant Articles', 'accelerated-mobile-pages'),
3353
  'default' => 0,
3354
  'true' => 'true',
3355
  'false' => 'false',
3356
- 'desc' => __('Re-Save permalink when you enable this option, please have a look <a href="https://ampforwp.com/flush-rewrite-urls/">here</a> on how to do it', 'accelerated-mobile-pages'),
3357
  ),
3358
  array(
3359
  'id' => 'fb-instant-article-feed-url',
3360
  'type' => 'info',
3361
  'style' => 'critical',
3362
- 'desc' => fb_instant_article(),
3363
- 'title' => __('Facebook Instant Articles Feed URL', 'accelerated-mobile-pages'),
3364
  'required' => array('fb-instant-article-switch', '=', 1)
3365
  ),
3366
  array(
3367
  'id' => 'fb-instant-page-id',
3368
  'type' => 'text',
3369
- 'title' => __('Facebook Page ID', 'accelerated-mobile-pages'),
3370
- 'desc' => __('Follow <a href="https://www.facebook.com/instant_articles/signup" target="_blank">these instructions</a> to sign up to Instant Articles and get your Facebook Page ID.', 'accelerated-mobile-pages'),
3371
  'required' => array('fb-instant-article-switch', '=', 1)
3372
  ),
3373
 
3374
  array(
3375
  'id' => 'amp-fbia_2',
3376
  'type' => 'section',
3377
- 'title' => __('Facebook Instant Articles Settings', 'accelerated-mobile-pages'),
3378
  'indent' => true,
3379
  'layout_type' => 'accordion',
3380
  'accordion-open'=> 1,
@@ -3383,58 +3354,58 @@ Redux::setSection( $opt_name, array(
3383
  array(
3384
  'id' => 'ampforwp-fb-instant-article-posts',
3385
  'type' => 'text',
3386
- 'title' => __('Number of Posts', 'accelerated-mobile-pages'),
3387
- 'tooltip-subtitle' => __('Enter the number of posts to generate for Instant Articles.', 'accelerated-mobile-pages'),
3388
- 'desc' => __('Leave this empty to generate All Posts.', 'accelerated-mobile-pages'),
3389
  'required' => array('fb-instant-article-switch', '=', 1),
3390
  'default' => '50'
3391
  ),
3392
  array(
3393
  'id' => 'ampforwp-instant-article-author-meta',
3394
  'type' => 'switch',
3395
- 'title' => __('Author Meta', 'accelerated-mobile-pages'),
3396
  'default' => 1,
3397
  'true' => 'true',
3398
  'false' => 'false',
3399
- 'tooltip-subtitle' => __('Enable/Disable Author Meta', 'accelerated-mobile-pages'),
3400
  'required' => array('fb-instant-article-switch', '=', 1)
3401
  ),
3402
  array(
3403
  'id' => 'ampforwp-instant-article-author-bio',
3404
  'type' => 'switch',
3405
- 'title' => __('Author Bio', 'accelerated-mobile-pages'),
3406
  'default' => 0,
3407
  'true' => 'true',
3408
  'false' => 'false',
3409
- 'tooltip-subtitle' => __('Enable/Disable Author Bio', 'accelerated-mobile-pages'),
3410
  'required' => array('fb-instant-article-switch', '=', 1)
3411
  ),
3412
  array(
3413
  'id' => 'ampforwp-ia-related-articles',
3414
  'type' => 'switch',
3415
- 'title' => __('Related Articles', 'accelerated-mobile-pages'),
3416
  'default' => 0,
3417
  'true' => 'true',
3418
  'false' => 'false',
3419
- 'tooltip-subtitle' => __('Show/Hide Related Articles', 'accelerated-mobile-pages'),
3420
  'required' => array('fb-instant-article-switch', '=', 1)
3421
  ),
3422
  array(
3423
  'id' => 'fb-instant-article-ads',
3424
  'type' => 'switch',
3425
- 'title' => __('Advertisement', 'accelerated-mobile-pages'),
3426
  'default' => 0,
3427
  'true' => 'true',
3428
  'false' => 'false',
3429
- 'desc' => __('Switch this on to enable advertising on Instant Article pages.', 'accelerated-mobile-pages'),
3430
  'required' => array('fb-instant-article-switch', '=', 1)
3431
  ),
3432
  array(
3433
  'id' => 'fb-instant-article-ad-type',
3434
  'type' => 'select',
3435
- 'title' => __('Select Advertisement Format', 'accelerated-mobile-pages'),
3436
  'default' => '1',
3437
- 'desc' => __('Select the type of advertising on Instant Article pages you want to display.', 'accelerated-mobile-pages'),
3438
  'options' => array(
3439
  '1' => 'Facebook Audience Network',
3440
  '2' => 'Custom iframe URL',
@@ -3445,33 +3416,33 @@ Redux::setSection( $opt_name, array(
3445
  array(
3446
  'id' => 'fb-instant-article-ad-id',
3447
  'type' => 'text',
3448
- 'title' => __('Enter your Audience Network Placement ID', 'accelerated-mobile-pages'),
3449
- 'tooltip-subtitle' => __('You can find out more about this <a href="https://developers.facebook.com/docs/instant-articles/monetization/audience-network">here</a>. ', 'accelerated-mobile-pages'),
3450
- 'desc' => __('<a href="https://ampforwp.com/tutorials/article/how-to-enter-audience-network-placement-id-of-advertisement-in-the-instant-article/" target="_blank">Click here</a> on how to get Audience Network Placement Id.', 'accelerated-mobile-pages'),
3451
  'required' => array('fb-instant-article-ad-type', '=', '1')
3452
  ),
3453
  array(
3454
  'id' => 'fb-instant-article-custom-iframe-ad',
3455
  'type' => 'text',
3456
  'placeholder'=> 'https://www.adserver.com/ss',
3457
- 'title' => __('Enter your Custom iframe ad source URL'),
3458
  'required' => array('fb-instant-article-ad-type', '=', '2')
3459
  ),
3460
  array(
3461
  'id' => 'fb-instant-article-custom-embed-ad',
3462
  'type' => 'textarea',
3463
  'placeholder'=> '',
3464
- 'title' => __('Enter your Custom Embed ad code'),
3465
  'required' => array('fb-instant-article-ad-type', '=', '3')
3466
  ),
3467
  array(
3468
  'id' => 'fb-instant-article-ad-density-setup',
3469
  'type' => 'select',
3470
- 'title' => __('How often should ads show in Instant Article pages', 'accelerated-mobile-pages'),
3471
  'options' => array(
3472
- 'default' => __('Every 250 words', 'accelerated-mobile-pages' ),
3473
- 'medium' => __('Every 350 words', 'accelerated-mobile-pages' ),
3474
- 'low' => __('Every 500 words', 'accelerated-mobile-pages' ),
3475
  ),
3476
  'required' => array('fb-instant-article-ads', '=', 1),
3477
  'default' => 'default',
@@ -3479,48 +3450,48 @@ Redux::setSection( $opt_name, array(
3479
  array(
3480
  'id' => 'fb-instant-article-analytics',
3481
  'type' => 'switch',
3482
- 'title' => __('Analytics', 'accelerated-mobile-pages'),
3483
  'default' => 0,
3484
  'true' => 'true',
3485
  'false' => 'false',
3486
- 'desc' => __('Switch this on to enable analytics on Instant Article pages.', 'accelerated-mobile-pages'),
3487
  'required' => array('fb-instant-article-switch', '=', 1)
3488
  ),
3489
  array(
3490
  'id' => 'fb-instant-article-analytics-code',
3491
  'type' => 'textarea',
3492
- 'title' => __('Enter your Analytics script code', 'accelerated-mobile-pages'),
3493
- 'tooltip-subtitle' => __('Do not enter iframe tag. Find out more about support <a href="https://developers.facebook.com/docs/instant-articles/analytics">here</a> ', 'accelerated-mobile-pages'),
3494
  'required' => array('fb-instant-article-analytics', '=', 1)
3495
  ),
3496
  array(
3497
  'id' => 'fb-instant-crawler-ingestion',
3498
  'type' => 'switch',
3499
- 'title' => __('Crawler Ingestion', 'accelerated-mobile-pages'),
3500
- 'tooltip-subtitle' => __('Add ia:markup meta tag. Find out more about<a href="https://developers.facebook.com/docs/instant-articles/crawler-ingestion" target="_blank">here</a> ', 'accelerated-mobile-pages'),
3501
  'required' => array('fb-instant-article-switch', '=', 1)
3502
  ),
3503
  array(
3504
  'id' => 'fbia-header-text-area',
3505
  'type' => 'textarea',
3506
- 'title' => __('Custom HTML in Head Tag', 'accelerated-mobile-pages'),
3507
- 'desc' => __('Add custom HTML in Head Tag in Instant Articles Markup. Click <a href="https://developers.facebook.com/docs/instant-articles/guides/articlecreate" target="_blank">here</a> for more info on Instant Articles Markup', 'accelerated-mobile-pages'),
3508
  'default' => '',
3509
  'required' => array('fb-instant-article-switch', '=', 1)
3510
  ),
3511
  array(
3512
  'id' => 'fbia-body-text-area',
3513
  'type' => 'textarea',
3514
- 'title' => __('Custom HTML in Body Tag', 'accelerated-mobile-pages'),
3515
- 'desc' => __('Add custom HTML in Body Tag in Instant Articles Markup. Click <a href="https://developers.facebook.com/docs/instant-articles/guides/articlecreate" target="_blank">here</a> for more info on Instant Articles Markup', 'accelerated-mobile-pages'),
3516
  'default' => '',
3517
  'required' => array('fb-instant-article-switch', '=', 1)
3518
  ),
3519
  array(
3520
  'id' => 'fbia-footer-text-area',
3521
  'type' => 'textarea',
3522
- 'title' => __('Custom HTML in Footer Tag', 'accelerated-mobile-pages'),
3523
- 'desc' => __('Add custom HTML in Footer Tag in Instant Articles Markup. Click <a href="https://developers.facebook.com/docs/instant-articles/guides/articlecreate" target="_blank">here</a> for more info on Instant Articles Markup', 'accelerated-mobile-pages'),
3524
  'default' => '',
3525
  'required' => array('fb-instant-article-switch', '=', 1)
3526
  ),
@@ -3530,7 +3501,7 @@ Redux::setSection( $opt_name, array(
3530
 
3531
  // Hide AMP Bulk Tools
3532
  Redux::setSection( $opt_name, array(
3533
- 'title' => __( 'Hide AMP Bulk Tools', 'accelerated-mobile-pages' ),
3534
  'id' => 'hide-amp-section',
3535
  'subsection' => true,
3536
  'desc' => 'Here are some Advanced options to help you exclude AMP from your prefered pages',
@@ -3539,12 +3510,12 @@ Redux::setSection( $opt_name, array(
3539
  array(
3540
  'id' => 'amp-pages-meta-default',
3541
  'type' => 'select',
3542
- 'title' => __( 'Individual AMP Page (Bulk Edit)', 'accelerated-mobile-pages' ),
3543
- 'tooltip-subtitle' => __( 'Allows you to Show or Hide AMP from All pages, so it can be changed individually later. This option will change the Default value of AMP metabox in Pages', 'accelerated-mobile-pages' ),
3544
- 'desc' => __( 'NOTE: Changes will overwrite the previous settings.', 'accelerated-mobile-pages' ),
3545
  'options' => array(
3546
- 'show' => __('Show by Default', 'accelerated-mobile-pages' ),
3547
- 'hide' => __('Hide by default', 'accelerated-mobile-pages' ),
3548
  ),
3549
  'default' => 'show',
3550
  'required'=>array('amp-on-off-for-all-pages','=','1'),
@@ -3552,16 +3523,16 @@ Redux::setSection( $opt_name, array(
3552
  array(
3553
  'id' =>'hide-amp-categories',
3554
  'type' => 'checkbox_hierarchy',
3555
- 'title' => __('Select Categories to Hide AMP'),
3556
- 'tooltip-subtitle' => __( 'Hide AMP from all the posts of a selected category.', 'accelerated-mobile-pages' ),
3557
  'default' => 0,
3558
  'data' => 'category_list_hierarchy',
3559
  ),
3560
  array(
3561
  'id' =>'hide-amp-tags-bulk-option',
3562
  'type' => 'checkbox',
3563
- 'title' => __('Select Tags to Hide AMP'),
3564
- 'tooltip-subtitle' => __( 'Hide AMP from all the posts of a selected tags.', 'accelerated-mobile-pages' ),
3565
  'default' => 0,
3566
  'data' => 'tags',
3567
 
@@ -3572,25 +3543,17 @@ Redux::setSection( $opt_name, array(
3572
 
3573
  // Advance Settings SECTION
3574
  Redux::setSection( $opt_name, array(
3575
- 'title' => __( 'Advance Settings', 'accelerated-mobile-pages' ),
3576
- 'desc' => __( 'This section has some advanced settings, please use it with care','accelerated-mobile-pages'),
3577
  'id' => 'amp-advance',
3578
  'subsection' => true,
3579
  'fields' => array(
3580
 
3581
- /* array(
3582
- 'id' => 'ampforwp-homepage-on-off-support',
3583
- 'type' => 'switch',
3584
- 'title' => __('Homepage Support', 'accelerated-mobile-pages'),
3585
- 'tooltip-subtitle' => __('Enable/Disable Home page using this switch.', 'accelerated-mobile-pages'),
3586
- 'default' => '1'
3587
- ),*/
3588
-
3589
  array(
3590
  'id' => 'amp-mobile-redirection',
3591
  'type' => 'switch',
3592
- 'title' => __('Mobile Redirection', 'accelerated-mobile-pages'),
3593
- 'tooltip-subtitle' => __('
3594
  Enable AMP for your mobile users. Give your visitors a Faster mobile User Experience.','accelerated-mobile-pages'),
3595
  'default' => 0,
3596
 
@@ -3598,8 +3561,8 @@ Redux::setSection( $opt_name, array(
3598
  array(
3599
  'id' => 'convert-internal-nonamplinks-to-amp',
3600
  'type' => 'switch',
3601
- 'title' => __('Change Internal Links to AMP', 'accelerated-mobile-pages'),
3602
- 'tooltip-subtitle' => __('Enable if you want all your links inside the article to go to /amp/. All the outbound links will remain untouched.','accelerated-mobile-pages'),
3603
  'default' => 0,
3604
  ),
3605
  // End-point option
@@ -3609,38 +3572,38 @@ Redux::setSection( $opt_name, array(
3609
  'title' => ('Change End Point to ?amp'),
3610
  'default' => 0,
3611
  'tooltip-subtitle' => 'Enable this option when /amp/ is giving 404 after resaving the permalink settings.',
3612
- 'desc' => __( 'Making endpoints to ?amp will help you get the amp in tricky setups with taxonomies & post typs. Question mark in the url will not make any difference in the SEO.' ),
3613
  ),
3614
  array(
3615
  'id' => 'amp-header-text-area-for-html',
3616
  'type' => 'textarea',
3617
- 'title' => __('Enter HTML in Head', 'accelerated-mobile-pages'),
3618
- 'tooltip-subtitle' => __('please enter markup that is AMP validated', 'accelerated-mobile-pages'),
3619
- 'desc' => __('check your markup here (enter markup between HEAD tag) : https://validator.ampproject.org/', 'accelerated-mobile-pages'),
3620
  'default' => ''
3621
  ),
3622
  array(
3623
  'id' => 'amp-body-text-area',
3624
  'type' => 'textarea',
3625
- 'title' => __('Enter HTML in Body (beginning of body tag) ', 'accelerated-mobile-pages'),
3626
- 'tooltip-subtitle' => __('please enter markup that is AMP validated', 'accelerated-mobile-pages'),
3627
- 'desc' => __('check your markup here (enter markup in the beginning of body tag) : https://validator.ampproject.org/', 'accelerated-mobile-pages'),
3628
  'default' => ''
3629
  ),
3630
  array(
3631
  'id' => 'amp-footer-text-area-for-html',
3632
  'type' => 'textarea',
3633
- 'title' => __('Enter HTML in Footer', 'accelerated-mobile-pages'),
3634
- 'tooltip-subtitle' => __('please enter markup that is AMP validated', 'accelerated-mobile-pages'),
3635
- 'desc' => __('check your markup here (enter markup between BODY tag) : https://validator.ampproject.org/',
3636
  'accelerated-mobile-pages'),
3637
  'default' => ''
3638
  ),
3639
  array(
3640
  'id' => 'ampforwp-auto-amp-menu-link',
3641
  'type' => 'switch',
3642
- 'title' => __('Auto Add AMP in Menu URL', 'accelerated-mobile-pages'),
3643
- 'tooltip-subtitle' => __('Automatically add <code>AMP</code> at the end of menu url', 'accelerated-mobile-pages'),
3644
  'true' => 'true',
3645
  'false' => 'false',
3646
  'default' => 0,
@@ -3650,8 +3613,8 @@ Redux::setSection( $opt_name, array(
3650
  array(
3651
  'id' => 'ampforwp-category-base-removel-link',
3652
  'type' => 'switch',
3653
- 'title' => __('Category base remove in AMP', 'accelerated-mobile-pages'),
3654
- 'tooltip-subtitle' => __('Category base removal in <code>AMP</code> from url', 'accelerated-mobile-pages'),
3655
  'true' => 'true',
3656
  'false' => 'false',
3657
  'default' => 0,
@@ -3661,8 +3624,8 @@ Redux::setSection( $opt_name, array(
3661
  array(
3662
  'id' => 'ampforwp-tag-base-removal-link',
3663
  'type' => 'switch',
3664
- 'title' => __('Tag base remove in AMP', 'accelerated-mobile-pages'),
3665
- 'tooltip-subtitle' => __('Tag base remove in <code>AMP</code> from url', 'accelerated-mobile-pages'),
3666
  'true' => 'true',
3667
  'false' => 'false',
3668
  'default' => 0,
@@ -3672,8 +3635,8 @@ Redux::setSection( $opt_name, array(
3672
  array(
3673
  'id' => 'ampforwp-custom-fields-featured-image-switch',
3674
  'type' => 'switch',
3675
- 'title' => __('Featured Image from Custom Fields', 'accelerated-mobile-pages'),
3676
- 'tooltip-subtitle' => __('This will allow you to add Featured Image from Custom Fields', 'accelerated-mobile-pages'),
3677
  'true' => 'true',
3678
  'false' => 'false',
3679
  'default' => 0,
@@ -3681,17 +3644,17 @@ Redux::setSection( $opt_name, array(
3681
  array(
3682
  'id' => 'ampforwp-custom-fields-featured-image',
3683
  'type' => 'text',
3684
- 'title' => __('Custom Field For Featured Image', 'accelerated-mobile-pages'),
3685
- 'default' => __ ('','accelerated-mobile-pages'),
3686
- 'placeholder'=>__('Write the Custom Field of Featured Image','accelerated-mobile-pages'),
3687
  'required' => array( 'ampforwp-custom-fields-featured-image-switch', '=' , 1 )
3688
  ),
3689
  // Grab the First Image for Featured Image if there is none
3690
  array(
3691
  'id' => 'ampforwp-featured-image-from-content',
3692
  'type' => 'switch',
3693
- 'title' => __('Featured Image from The Content', 'accelerated-mobile-pages'),
3694
- 'tooltip-subtitle' => __('Show the first image of the content as Featured Image if there is no featured image', 'accelerated-mobile-pages'),
3695
  'true' => 'true',
3696
  'false' => 'false',
3697
  'default' => 0,
@@ -3700,8 +3663,8 @@ Redux::setSection( $opt_name, array(
3700
  array(
3701
  'id' => 'ampforwp-duplicate-featured-image',
3702
  'type' => 'switch',
3703
- 'title' => __('Duplicate Featured Image', 'accelerated-mobile-pages'),
3704
- 'tooltip-subtitle' => __('Turn On the support if you want to show the Featured Image if it already exists in post content.', 'accelerated-mobile-pages'),
3705
  'true' => 'true',
3706
  'false' => 'false',
3707
  'default' => 0,
@@ -3710,8 +3673,8 @@ Redux::setSection( $opt_name, array(
3710
  array(
3711
  'id' => 'ampforwp-retina-images',
3712
  'type' => 'switch',
3713
- 'title' => __('Retina Images', 'accelerated-mobile-pages'),
3714
- 'tooltip-subtitle' => __('Enable if your current images looking blured on Apple Devices.', 'accelerated-mobile-pages'),
3715
  'default' => 0,
3716
  ),
3717
  array(
@@ -3722,15 +3685,15 @@ Redux::setSection( $opt_name, array(
3722
  '3' => '3x',
3723
  '4' => '4x',
3724
  ),
3725
- 'title' => __('Retina Images Resolution', 'accelerated-mobile-pages'),
3726
- 'tooltip-subtitle' => __('Select the Resolution', 'accelerated-mobile-pages'),
3727
  'default' => '2',
3728
  'required' => array('ampforwp-retina-images', '=', 1)
3729
  ),
3730
  array(
3731
  'id' => 'amp-meta-permissions',
3732
  'type' => 'select',
3733
- 'title' => __('Show Metabox in Post Editor to', 'accelerated-mobile-pages'),
3734
  'options' => array(
3735
  'all' => 'All users who can post',
3736
  'admin' => 'Only to Admin'
@@ -3740,8 +3703,8 @@ Redux::setSection( $opt_name, array(
3740
  array(
3741
  'id' => 'ampforwp-development-mode',
3742
  'type' => 'switch',
3743
- 'title' => __('Dev Mode in AMP'),
3744
- 'tooltip-subtitle' => __('This will enable the Development mode in AMP', 'accelerated-mobile-pages'),
3745
  'true' => 'true',
3746
  'false' => 'false',
3747
  'default' => 0,
@@ -3750,15 +3713,15 @@ Redux::setSection( $opt_name, array(
3750
  'id' => 'ampforwp-development-mode-notice',
3751
  'type' => 'info',
3752
  'style' => 'info',
3753
- 'desc' => __('Add /amp at the end of url to view the AMP version of the site. Search Engines will not be able to Crawl the AMP site when in Dev Mode.', 'accelerated-mobile-pages'),
3754
- 'title' => __('Dev Mode', 'accelerated-mobile-pages'),
3755
  'required' => array('ampforwp-development-mode', '=', 1)
3756
  ),
3757
  array(
3758
  'id' => 'ampforwp-update-notification-bar',
3759
  'type' => 'switch',
3760
- 'title' => __('Plugin Update Notification Bar'),
3761
- 'tooltip-subtitle' => __('Enable/Disable the Plugin Update Notification Bar', 'accelerated-mobile-pages'),
3762
  'true' => 'true',
3763
  'false' => 'false',
3764
  'default' => 1,
@@ -3766,8 +3729,8 @@ Redux::setSection( $opt_name, array(
3766
  array(
3767
  'id' => 'ampforwp-wptexturize',
3768
  'type' => 'switch',
3769
- 'title' => __('Disable wptexturize'),
3770
- 'tooltip-subtitle' => __('Enable this option to Disable wptexturize Globally', 'accelerated-mobile-pages'),
3771
  'true' => 'true',
3772
  'false' => 'false',
3773
  'default' => 0,
@@ -3775,8 +3738,8 @@ Redux::setSection( $opt_name, array(
3775
  array(
3776
  'id' => 'ampforwp-content-builder',
3777
  'type' => 'switch',
3778
- 'title' => __('Legacy Page Builder (widgets)', 'accelerated-mobile-pages'),
3779
- 'tooltip-subtitle' => __('Build AMP Landing pages in minutes.', 'accelerated-mobile-pages'),
3780
  'true' => 'true',
3781
  'false' => 'false',
3782
  'default' => 0
@@ -3785,9 +3748,9 @@ Redux::setSection( $opt_name, array(
3785
  array(
3786
  'id' => 'ampforwp-delete-on-uninstall',
3787
  'type' => 'switch',
3788
- 'title' => __('Delete Data on Uninstall?', 'accelerated-mobile-pages'),
3789
  'default' => 0,
3790
- 'tooltip-subtitle' => __('Enable this if you would like AMPforWP to completely remove all of its data when uninstalling via Plugins > Delete.'),
3791
  ),
3792
  ),
3793
 
@@ -3797,7 +3760,7 @@ Redux::setSection( $opt_name, array(
3797
  $e_commerce_support[] = array(
3798
  'id' => 'ampforwp-woocommerce',
3799
  'type' => 'section',
3800
- 'title' => __('WooCommerce Compatibility', 'accelerated-mobile-pages'),
3801
  'indent' => true,
3802
  'layout_type' => 'accordion',
3803
  'accordion-open'=> 1,
@@ -3805,7 +3768,7 @@ $e_commerce_support[] = array(
3805
  $e_commerce_support[] = array(
3806
  'id' =>'amp-enable-woocommerce',
3807
  'type' => 'switch',
3808
- 'title' => __('WooCommerce Support', 'accelerated-mobile-pages'),
3809
  'default' => '',
3810
  'true' => 'Enabled',
3811
  'false' => 'Disabled',
@@ -3815,7 +3778,7 @@ $e_commerce_support[] = array(
3815
  'id' => 'info_normal_woocommerce',
3816
  'type' => 'info',
3817
  'required' => array('amp-enable-woocommerce', '=' , '1'),
3818
- 'desc' => '<div style=" background: #FFF9C4;padding: 12px;line-height: 1.6;margin:-45px -14px -18px -17px;"><b>ONE LAST STEP REQUIRED:</b> This feature requires a free extension <a href="https://wordpress.org/plugins/amp-woocommerce/" target="_blank">AMP WooCommerce</a>.<br /> <div style="margin-top:4px;">(<a href="https://wordpress.org/plugins/amp-woocommerce/" target="_blank">'.__('Click here for more info','accelerated-mobile-pages').'</a>)</div></div>',
3819
  );
3820
  }
3821
  elseif ( is_plugin_active( 'amp-woocommerce/amp-woocommerce.php' ) && !is_plugin_active( 'amp-woocommerce-pro/amp-woocommerce.php' ) ) {
@@ -3823,7 +3786,7 @@ $e_commerce_support[] = array(
3823
  'id' => 'info_normal_woocommerce_pro',
3824
  'type' => 'info',
3825
  'required' => array('amp-enable-woocommerce', '=' , '1'),
3826
- 'desc' => '<div style=" background: #FFF9C4;padding: 12px;line-height: 1.6;margin:-45px -14px -18px -17px;"><b>Pro Version:</b> Everything in Free, and Archives, Gallery, Cart, Variants & Attributes, Rating & Reviews Support.<a href="https://ampforwp.com/woocommerce/" target="_blank"></a><br /> <div style="margin-top:4px;">(<a href="https://ampforwp.com/woocommerce/" target="_blank">'.__('Click here for more info','accelerated-mobile-pages').'</a>)</div></div>',
3827
  );
3828
  }
3829
  elseif ( is_plugin_active( 'amp-woocommerce-pro/amp-woocommerce.php' ) ) {
@@ -3832,14 +3795,14 @@ $e_commerce_support[] = array(
3832
  'type' => 'info',
3833
  'style' => 'success',
3834
  'required' => array('amp-enable-woocommerce', '=' , '1'),
3835
- 'desc' => __(' AMP WooCommerce is activated', 'accelerated-mobile-pages'),
3836
  );
3837
  }
3838
  // EDD Compatibility
3839
  $e_commerce_support[] = array(
3840
  'id' => 'ampforwp-edd-compatibility',
3841
  'type' => 'section',
3842
- 'title' => __('Easy Digital Downloads Compatibility', 'accelerated-mobile-pages'),
3843
  'indent' => true,
3844
  'layout_type' => 'accordion',
3845
  'accordion-open'=> 1,
@@ -3847,7 +3810,7 @@ $e_commerce_support[] = array(
3847
  $e_commerce_support[] = array(
3848
  'id' =>'amp-edd-support',
3849
  'type' => 'switch',
3850
- 'title' => __('Easy Digital Downloads Support', 'accelerated-mobile-pages'),
3851
  'default' => '',
3852
  'true' => 'Enabled',
3853
  'false' => 'Disabled',
@@ -3857,12 +3820,12 @@ $e_commerce_support[] = array(
3857
  'id' => 'info_normal_edd',
3858
  'type' => 'info',
3859
  'required' => array('amp-edd-support', '=' , '1'),
3860
- 'desc' => '<div style=" background: #FFF9C4;padding: 12px;line-height: 1.6;margin:-45px -14px -18px -17px;"><b>ONE LAST STEP REQUIRED:</b> This feature requires <a href="https://ampforwp.com/edd-for-amp/" target="_blank">EDD for AMP extension</a>.<br /> <div style="margin-top:4px;">(<a href="https://ampforwp.com/edd-for-amp/" target="_blank">'.__('Click here for more info','accelerated-mobile-pages').'</a>)</div></div>',
3861
  );}
3862
 
3863
  // E Commerce SECTION
3864
  Redux::setSection( $opt_name, array(
3865
- 'title' => __( 'E-Commerce', 'accelerated-mobile-pages' ),
3866
  'id' => 'amp-e-commerce',
3867
  'subsection' => true,
3868
  'fields' => $e_commerce_support
@@ -3870,343 +3833,343 @@ $e_commerce_support[] = array(
3870
 
3871
  // Translation Panel
3872
  Redux::setSection( $opt_name, array(
3873
- 'title' => __( 'Translation Panel', 'accelerated-mobile-pages' ),
3874
- 'desc' => __( 'Please translate the following words of page accordingly else default content is in English Language', 'accelerated-mobile-pages' ),
3875
  'id' => 'amp-translator',
3876
  'subsection' => true,
3877
  'fields' => array(
3878
  array(
3879
  'id' => 'amp-use-pot',
3880
  'type' => 'switch',
3881
- 'title' => __('Use POT file method of Translation', 'accelerated-mobile-pages'),
3882
- 'tooltip-subtitle' => __('Else you can use normal translation method', 'accelerated-mobile-pages'),
3883
- 'desc' => __('Use this if you want Multilingual Translations', 'accelerated-mobile-pages'),
3884
  'default' => 0
3885
  ),
3886
  array(
3887
  'id' => 'amp-translator-breadcrumbs-homepage-text',
3888
  'type' => 'text',
3889
- 'title' => __('Breadcrumbs Homepage Title', 'accelerated-mobile-pages'),
3890
- 'default' => __('Homepage','accelerated-mobile-pages'),
3891
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3892
  'required' => array( 'amp-use-pot', '=' , 0 )
3893
  ),
3894
  array(
3895
  'id' => 'amp-translator-fourohfour',
3896
  'type' => 'text',
3897
- 'title' => __('404 Error', 'accelerated-mobile-pages'),
3898
- 'default' => __('Oops! That page can’t be found.','accelerated-mobile-pages'),
3899
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3900
  'required' => array( 'amp-use-pot', '=' , 0 )
3901
  ),
3902
  array(
3903
  'id' => 'amp-translator-show-more-posts-text',
3904
  'type' => 'text',
3905
- 'title' => __('Show more Posts', 'accelerated-mobile-pages'),
3906
- 'default' => __('Show more Posts','accelerated-mobile-pages'),
3907
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3908
  'required' => array( 'amp-use-pot', '=' , 0 )
3909
  ),
3910
  array(
3911
  'id' => 'amp-translator-show-previous-posts-text',
3912
  'type' => 'text',
3913
- 'title' => __('Show previous Posts', 'accelerated-mobile-pages'),
3914
- 'default' => __('Show previous Posts','accelerated-mobile-pages'),
3915
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3916
  'required' => array( 'amp-use-pot', '=' , 0 )
3917
  ),
3918
  array(
3919
  'id' => 'amp-translator-top-text',
3920
  'type' => 'text',
3921
- 'title' => __('Top', 'accelerated-mobile-pages'),
3922
- 'default' => __('Top','accelerated-mobile-pages'),
3923
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3924
  'required' => array( 'amp-use-pot', '=' , 0 )
3925
  ),
3926
  array(
3927
  'id' => 'amp-translator-non-amp-page-text',
3928
  'type' => 'text',
3929
- 'title' => __('View Non-AMP Version', 'accelerated-mobile-pages'),
3930
- 'default' => __('View Non-AMP Version','accelerated-mobile-pages'),
3931
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3932
  'required' => array( 'amp-use-pot', '=' , 0 )
3933
  ),
3934
  array(
3935
  'id' => 'amp-translator-related-text',
3936
  'type' => 'text',
3937
- 'title' => __('Related Post', 'accelerated-mobile-pages'),
3938
- 'default' => __('Related Post','accelerated-mobile-pages'),
3939
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3940
  'required' => array( 'amp-use-pot', '=' , 0 )
3941
  ),
3942
  array(
3943
  'id' => 'amp-translator-recent-text',
3944
  'type' => 'text',
3945
- 'title' => __('Recent Posts', 'accelerated-mobile-pages'),
3946
- 'default' => __('Recent Posts','accelerated-mobile-pages'),
3947
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3948
  'required' => array( 'amp-use-pot', '=' , 0 )
3949
  ),
3950
  array(
3951
  'id' => 'amp-translator-navigate-text',
3952
  'type' => 'text',
3953
- 'title' => __('Navigate', 'accelerated-mobile-pages'),
3954
- 'default' => __('Navigate','accelerated-mobile-pages'),
3955
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3956
  'required' => array( 'amp-use-pot', '=' , 0 )
3957
  ),
3958
  array(
3959
  'id' => 'amp-translator-on-text',
3960
  'type' => 'text',
3961
- 'title' => __('On', 'accelerated-mobile-pages'),
3962
- 'default' => __('On','accelerated-mobile-pages'),
3963
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3964
  'required' => array( 'amp-use-pot', '=' , 0 )
3965
  ),
3966
  array(
3967
  'id' => 'amp-translator-next-text',
3968
  'type' => 'text',
3969
- 'title' => __('Next', 'accelerated-mobile-pages'),
3970
- 'default' => __('Next','accelerated-mobile-pages'),
3971
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3972
  'required' => array( 'amp-use-pot', '=' , 0 )
3973
  ),
3974
  array(
3975
  'id' => 'amp-translator-previous-text',
3976
  'type' => 'text',
3977
- 'title' => __('Previous', 'accelerated-mobile-pages'),
3978
- 'default' => __('Previous','accelerated-mobile-pages'),
3979
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3980
  'required' => array( 'amp-use-pot', '=' , 0 )
3981
  ),
3982
  array(
3983
  'id' => 'amp-translator-page-text',
3984
  'type' => 'text',
3985
- 'title' => __('Page', 'accelerated-mobile-pages'),
3986
- 'default' => __('Page','accelerated-mobile-pages'),
3987
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3988
  'required' => array( 'amp-use-pot', '=' , 0 )
3989
  ),
3990
  array(
3991
  'id' => 'amp-translator-archives-text',
3992
  'type' => 'text',
3993
- 'title' => __('Archives', 'accelerated-mobile-pages'),
3994
- 'default' => __('Archives','accelerated-mobile-pages'),
3995
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
3996
  'required' => array( 'amp-use-pot', '=' , 0 )
3997
  ),
3998
  array(
3999
  'id' => 'amp-translator-breadcrumbs-search-text',
4000
  'type' => 'text',
4001
- 'title' => __('Search results for', 'accelerated-mobile-pages'),
4002
- 'default' => __('Search results for','accelerated-mobile-pages'),
4003
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4004
  'required' => array( 'amp-use-pot', '=' , 0 )
4005
  ),
4006
  array(
4007
  'id' => 'amp-translator-error-404-text',
4008
  'type' => 'text',
4009
- 'title' => __('Error 404', 'accelerated-mobile-pages'),
4010
- 'default' => __('Error 404','accelerated-mobile-pages'),
4011
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4012
  'required' => array( 'amp-use-pot', '=' , 0 )
4013
  ),
4014
  array(
4015
  'id' => 'amp-translator-footer-text',
4016
  'type' => 'textarea',
4017
- 'title' => __('Footer', 'accelerated-mobile-pages'),
4018
- 'default' => __('All Rights Reserved','accelerated-mobile-pages'),
4019
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4020
  'required' => array( 'amp-use-pot', '=' , 0 )
4021
  ),
4022
  array(
4023
  'id' => 'amp-translator-categories-text',
4024
  'type' => 'text',
4025
- 'title' => __('Categories', 'accelerated-mobile-pages'),
4026
- 'default' => __('Categories: ','accelerated-mobile-pages'),
4027
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4028
  'required' => array( 'amp-use-pot', '=' , 0 )
4029
  ),
4030
  array(
4031
  'id' => 'amp-translator-tags-text',
4032
  'type' => 'text',
4033
- 'title' => __('Tags', 'accelerated-mobile-pages'),
4034
- 'default' => __('Tags: ','accelerated-mobile-pages'),
4035
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4036
  'required' => array( 'amp-use-pot', '=' , 0 )
4037
  ),
4038
  array(
4039
  'id' => 'amp-translator-by-text',
4040
  'type' => 'text',
4041
- 'title' => __('By', 'accelerated-mobile-pages'),
4042
- 'default' => __('By','accelerated-mobile-pages'),
4043
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4044
  'required' => array( 'amp-use-pot', '=' , 0 )
4045
  ),
4046
  array(
4047
  'id' => 'amp-translator-published-by',
4048
  'type' => 'text',
4049
- 'title' => __('Published by', 'accelerated-mobile-pages'),
4050
- 'default' => __('Published by','accelerated-mobile-pages'),
4051
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4052
  'required' => array( 'amp-use-pot', '=' , 0 )
4053
  ),
4054
  array(
4055
  'id' => 'amp-translator-in-designthree',
4056
  'type' => 'text',
4057
- 'title' => __('in', 'accelerated-mobile-pages'),
4058
- 'default' =>__( 'in','accelerated-mobile-pages'),
4059
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4060
  'required' => array( 'amp-use-pot', '=' , 0 )
4061
  ),
4062
  array(
4063
  'id' => 'amp-translator-view-comments-text',
4064
  'type' => 'text',
4065
- 'title' => __('View Comments', 'accelerated-mobile-pages'),
4066
- 'default' => __('View Comments','accelerated-mobile-pages'),
4067
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4068
  'required' => array( 'amp-use-pot', '=' , 0 )
4069
  ),
4070
  array(
4071
  'id' => 'amp-translator-leave-a-comment-text',
4072
  'type' => 'text',
4073
- 'title' => __('Leave a Comment', 'accelerated-mobile-pages'),
4074
- 'default' => __('Leave a Comment','accelerated-mobile-pages'),
4075
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4076
  'required' => array( 'amp-use-pot', '=' , 0 )
4077
  ),
4078
  array(
4079
  'id' => 'amp-translator-comments-closed',
4080
  'type' => 'text',
4081
- 'title' => __('Comments are closed.', 'accelerated-mobile-pages'),
4082
- 'default' => __('Comments are closed.','accelerated-mobile-pages'),
4083
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4084
  'required' => array( 'amp-use-pot', '=' , 0 )
4085
  ),
4086
  array(
4087
  'id' => 'amp-translator-at-text',
4088
  'type' => 'text',
4089
- 'title' => __('at', 'accelerated-mobile-pages'),
4090
- 'default' => __('at','accelerated-mobile-pages'),
4091
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4092
  'required' => array( 'amp-use-pot', '=' , 0 )
4093
  ),
4094
  array(
4095
  'id' => 'amp-translator-says-text',
4096
  'type' => 'text',
4097
- 'title' => __('says', 'accelerated-mobile-pages'),
4098
- 'default' =>__( 'says','accelerated-mobile-pages'),
4099
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4100
  'required' => array( 'amp-use-pot', '=' , 0 )
4101
  ),
4102
  array(
4103
  'id' => 'amp-translator-Edit-text',
4104
  'type' => 'text',
4105
- 'title' => __('Edit', 'accelerated-mobile-pages'),
4106
- 'default' => __('Edit','accelerated-mobile-pages'),
4107
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4108
  'required' => array( 'amp-use-pot', '=' , 0 )
4109
  ),
4110
  array(
4111
  'id' => 'amp-translator-ago-date-text',
4112
  'type' => 'text',
4113
- 'title' => __('ago', 'accelerated-mobile-pages'),
4114
- 'default' => __('ago','accelerated-mobile-pages'),
4115
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4116
  'required' => array( 'amp-use-pot', '=' , 0 )
4117
  ),
4118
  array(
4119
  'id' => 'amp-translator-modified-date-text',
4120
  'type' => 'text',
4121
- 'title' => __('This post was last modified on ', 'accelerated-mobile-pages'),
4122
- 'default' => __('This post was last modified on ','accelerated-mobile-pages'),
4123
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4124
  'required' => array( 'amp-use-pot', '=' , 0 )
4125
  ),
4126
  array(
4127
  'id' => 'amp-translator-archive-cat-text',
4128
  'type' => 'text',
4129
- 'title' => __('Category (archive title)', 'accelerated-mobile-pages'),
4130
- 'default' => __('Category: ','accelerated-mobile-pages'),
4131
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4132
  'required' => array( 'amp-use-pot', '=' , 0 )
4133
  ),
4134
  array(
4135
  'id' => 'amp-translator-archive-tag-text',
4136
  'type' => 'text',
4137
- 'title' => __('Tag (archive title)', 'accelerated-mobile-pages'),
4138
- 'default' => __('Tag: ','accelerated-mobile-pages'),
4139
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4140
  'required' => array( 'amp-use-pot', '=' , 0 )
4141
  ),
4142
  array(
4143
  'id' => 'amp-translator-show-more-text',
4144
  'type' => 'text',
4145
- 'title' => __('View More Posts (Widget Button)', 'accelerated-mobile-pages'),
4146
- 'default' => __('View More Posts','accelerated-mobile-pages'),
4147
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4148
  'required' => array( 'amp-use-pot', '=' , 0 )
4149
  ),
4150
  array(
4151
  'id' => 'amp-translator-next-read-text',
4152
  'type' => 'text',
4153
- 'title' => __('Next Read', 'accelerated-mobile-pages'),
4154
- 'default' => __('Next Read: ','accelerated-mobile-pages'),
4155
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4156
  'required' => array( 'amp-use-pot', '=' , 0 )
4157
  ),
4158
  array(
4159
  'id' => 'amp-translator-read-more',
4160
  'type' => 'text',
4161
- 'title' => __('Read More', 'accelerated-mobile-pages'),
4162
- 'default' => __('Read More','accelerated-mobile-pages'),
4163
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4164
  'required' => array( 'amp-use-pot', '=' , 0 )
4165
  ),
4166
  array(
4167
  'id' => 'amp-translator-via-text',
4168
  'type' => 'text',
4169
- 'title' => __('via', 'accelerated-mobile-pages'),
4170
- 'default' => __('via','accelerated-mobile-pages'),
4171
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4172
  'required' => array( 'amp-use-pot', '=' , 0 )
4173
  ),
4174
  array(
4175
  'id' => 'amp-translator-share-text',
4176
  'type' => 'text',
4177
- 'title' => __('Share', 'accelerated-mobile-pages'),
4178
- 'default' => __('Share','accelerated-mobile-pages'),
4179
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4180
  'required' => array( 'amp-use-pot', '=' , 0 )
4181
  ),
4182
  array(
4183
  'id' => 'amp-translator-search-text',
4184
  'type' => 'text',
4185
- 'title' => __(' You searched for: ', 'accelerated-mobile-pages'),
4186
- 'default' => __(' You searched for: ','accelerated-mobile-pages'),
4187
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4188
  'required' => array( 'amp-use-pot', '=' , 0 )
4189
  ),
4190
  array(
4191
  'id' => 'amp-translator-search-no-found',
4192
  'type' => 'text',
4193
- 'title' => __(' It seems we can\'t find what you\'re looking for. ', 'accelerated-mobile-pages'),
4194
- 'default' => __(' It seems we can\'t find what you\'re looking for. ','accelerated-mobile-pages'),
4195
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4196
  'required' => array( 'amp-use-pot', '=' , 0 )
4197
  ),
4198
  array(
4199
  'id' => 'amp-translator-and-text',
4200
  'type' => 'text',
4201
- 'title' => __(' and ', 'accelerated-mobile-pages'),
4202
- 'default' => __(' and ','accelerated-mobile-pages'),
4203
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4204
  'required' => array( 'amp-use-pot', '=' , 0 )
4205
  ),
4206
  array(
4207
  'id' => 'design-3-search-subsection',
4208
  'type' => 'section',
4209
- 'title' => __('Search bar Translation Text', 'accelerated-mobile-pages'),
4210
  'indent' => true,
4211
  'required' => array( 'amp-use-pot', '=' , 0 ),
4212
  'layout_type' => 'accordion',
@@ -4215,20 +4178,20 @@ $e_commerce_support[] = array(
4215
  array(
4216
  'id' => 'ampforwp-search-placeholder',
4217
  'type' => 'text',
4218
- 'title' => __('Type Here', 'accelerated-mobile-pages'),
4219
  'default' => 'Type Here','accelerated-mobile-pages'),
4220
- 'desc' => __('This is the text that gets shown in for Search Box','accelerated-mobile-pages'),
4221
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4222
  'required' => array( 'amp-use-pot', '=' , 0 )
4223
 
4224
  ),
4225
  array(
4226
  'id' => 'ampforwp-search-label',
4227
  'type' => 'text',
4228
- 'title' => __('Type your search query and hit enter', 'accelerated-mobile-pages'),
4229
- 'desc' => __('This is the text that gets shown above Search Box','accelerated-mobile-pages'),
4230
- 'default' => __('Type your search query and hit enter: ','accelerated-mobile-pages'),
4231
- 'placeholder'=>__('write here','accelerated-mobile-pages'),
4232
  'required' => array( 'amp-use-pot', '=' , 0 )
4233
 
4234
  )
@@ -4237,7 +4200,7 @@ $e_commerce_support[] = array(
4237
 
4238
  // Appearance Section
4239
  Redux::setSection( $opt_name, array(
4240
- 'title' => __( 'Design', 'accelerated-mobile-pages' ),
4241
  'icon' => 'el el-adjust-alt',
4242
  'desc' => ''
4243
 
@@ -4254,33 +4217,33 @@ Redux::setSection( $opt_name, array(
4254
  array(
4255
  'demo_link' => 'https://ampforwp.com/demo/#one',
4256
  'upgrade'=>true,
4257
- 'title'=>__('Design One', 'accelerated-mobile-pages' ),
4258
  'value'=>1,
4259
- 'alt'=>__('Design One', 'accelerated-mobile-pages' ),
4260
  'img'=>AMPFORWP_PLUGIN_DIR_URI.'/images/design-1.png',
4261
  ),
4262
  array(
4263
  'demo_link' => 'https://ampforwp.com/demo/#two',
4264
  'upgrade'=>true,
4265
- 'title'=>__('Design Two', 'accelerated-mobile-pages' ),
4266
  'value'=>2,
4267
- 'alt'=>__('Design Two', 'accelerated-mobile-pages' ),
4268
  'img'=>AMPFORWP_PLUGIN_DIR_URI.'/images/design-2.png',
4269
  ),
4270
  array(
4271
  'demo_link' => 'https://ampforwp.com/demo/#three',
4272
  'upgrade'=>true,
4273
- 'title'=>__('Design Three', 'accelerated-mobile-pages' ),
4274
  'value'=>3,
4275
- 'alt'=>__('Design Three', 'accelerated-mobile-pages' ),
4276
  'img'=>AMPFORWP_PLUGIN_DIR_URI.'/images/design-3.png',
4277
  ),
4278
  array(
4279
  'demo_link' => 'https://ampforwp.com/demo/amp-pagebuilder/amp/',
4280
  'upgrade' => true,
4281
- 'title' => __('Swift', 'accelerated-mobile-pages' ),
4282
  'value' => 4,
4283
- 'alt' => __('Swift', 'accelerated-mobile-pages' ),
4284
  'img' => AMPFORWP_PLUGIN_DIR_URI.'/images/swift.png',
4285
  ),
4286
  );
@@ -4305,7 +4268,7 @@ Redux::setSection( $opt_name, array(
4305
  }
4306
  // Themes Section
4307
  Redux::setSection( $opt_name, array(
4308
- 'title' => __( 'Themes', 'accelerated-mobile-pages' ), 'class' => 'ampforwp-new-element',
4309
 
4310
  'id' => 'amp-theme-settings',
4311
  'subsection' => true,
@@ -4315,11 +4278,11 @@ Redux::setSection( $opt_name, array(
4315
  'id' => 'amp-design-selector',
4316
  'class' => 'amp-design-selector',
4317
  'type' => 'demolink_image_select',
4318
- 'title' => __( 'Themes Selector', 'accelerated-mobile-pages' ),
4319
- 'subtitle' => __( 'Select your design from dropdown or <br /><a href="https://ampforwp.com/themes/" style="position: relative;
4320
  top: 20px;text-decoration: none;
4321
  background: #eee;padding: 5px 8px 5px 9px;
4322
- border-radius: 30px;" target="_blank">View More AMP Themes →</a>', 'accelerated-mobile-pages' ),
4323
  'options' => $themeDesign,
4324
  'default' => '4'
4325
  ),
@@ -4327,7 +4290,7 @@ Redux::setSection( $opt_name, array(
4327
  'id' => 'ampforwp_layouts_core',
4328
  'type' => 'raw',
4329
  'subtitle' => '<a class="amp-layouts-desc" href="https://ampforwp.com/amp-layouts/" target="_blank">What is Layouts?</a>',
4330
- 'title' => __('AMP Layouts', 'accelerated-mobile-pages'),
4331
  'full_width'=>true,
4332
  'class' =>(!is_plugin_active('amp-layouts/amp-layouts.php')? '': 'hide'),//,
4333
  'markdown'=> true,
@@ -4353,14 +4316,14 @@ Redux::setSection( $opt_name, array(
4353
 
4354
  // Global Theme Settings
4355
  Redux::setSection($opt_name, array(
4356
- 'title' => __( 'Global', 'accelerated-mobile-pages' ),
4357
  'id' => 'amp-theme-global-subsection',
4358
  'subsection' => true,
4359
  'fields' => array(
4360
  array(
4361
  'id' => 'colorscheme-section',
4362
  'type' => 'section',
4363
- 'title' => __('Color Scheme', 'accelerated-mobile-pages'),
4364
  'indent' => true,
4365
  'layout_type' => 'accordion',
4366
  'accordion-open'=> 1,
@@ -4368,8 +4331,8 @@ Redux::setSection( $opt_name, array(
4368
  // Swift
4369
  array(
4370
  'id' => 'swift-color-scheme',
4371
- 'title' => __('Global Color Scheme', 'accelerated-mobile-pages'),
4372
- 'tooltip-subtitle' => __('Choose the color for title, anchor link','accelerated-mobile-pages'),
4373
  'type' => 'color_rgba',
4374
  'default' => array(
4375
  'color' => '#005be2',
@@ -4381,7 +4344,7 @@ Redux::setSection( $opt_name, array(
4381
  array(
4382
  'id' => 'amp-opt-color-rgba-colorscheme',
4383
  'type' => 'color_rgba',
4384
- 'title' => __('Color Scheme','accelerated-mobile-pages'),
4385
  'default' => array(
4386
  'color' => '#F42F42',
4387
  ),
@@ -4392,7 +4355,7 @@ Redux::setSection( $opt_name, array(
4392
  array(
4393
  'id' => 'amp-opt-color-rgba-font',
4394
  'type' => 'color_rgba',
4395
- 'title' => __('Color Scheme Font Color','accelerated-mobile-pages'),
4396
  'default' => array(
4397
  'color' => '#fff',
4398
  ),
@@ -4404,7 +4367,7 @@ Redux::setSection( $opt_name, array(
4404
  array(
4405
  'id' => 'amp-opt-color-rgba-link',
4406
  'type' => 'color_rgba',
4407
- 'title' => __('Anchor Link Color','accelerated-mobile-pages'),
4408
  'default' => array(
4409
  'color' => '#f42f42',
4410
  ),
@@ -4416,7 +4379,7 @@ Redux::setSection( $opt_name, array(
4416
  array(
4417
  'id' => 'amp-opt-color-rgba-link-design2',
4418
  'type' => 'color_rgba',
4419
- 'title' => __('Anchor Link Color','accelerated-mobile-pages'),
4420
  'default' => array(
4421
  'color' => '#0a89c0',
4422
  ),
@@ -4428,7 +4391,7 @@ Redux::setSection( $opt_name, array(
4428
  array(
4429
  'id' => 'amp-opt-color-rgba-link-design1',
4430
  'type' => 'color_rgba',
4431
- 'title' => __('Anchor Link Color','accelerated-mobile-pages'),
4432
  'default' => array(
4433
  'color' => '#0a89c0',
4434
  ),
@@ -4439,7 +4402,7 @@ Redux::setSection( $opt_name, array(
4439
  array(
4440
  'id' => 'amp-opt-color-rgba-colorscheme-call',
4441
  'type' => 'color_rgba',
4442
- 'title' => __('Call Button Color','accelerated-mobile-pages'),
4443
  'default' => array(
4444
  'color' => '#0a89c0',
4445
  ),
@@ -4451,7 +4414,7 @@ Redux::setSection( $opt_name, array(
4451
  array(
4452
  'id' => 'typography-section',
4453
  'type' => 'section',
4454
- 'title' => __('Typography', 'accelerated-mobile-pages'),
4455
  'indent' => true,
4456
  'required' => array(
4457
  array('amp-design-selector', '=' , '4')
@@ -4462,8 +4425,8 @@ Redux::setSection( $opt_name, array(
4462
  array(
4463
  'id' =>'google_font_api_key',
4464
  'type' =>'text',
4465
- 'title' =>__('Google Font API key','accelerated-mobile-pages'),
4466
- 'tooltip-subtitle' => __('You can get the Link <a target="_blank" href="https://developers.google.com/fonts/docs/developer_api?refresh=1&pli=1#APIKey">form here</a>','accelerated-mobile-pages'),
4467
  'default' =>'',
4468
  'required' => array(
4469
  array('amp-design-selector', '=' , '4')
@@ -4475,8 +4438,8 @@ Redux::setSection( $opt_name, array(
4475
  'id' => 'amp_font_selector',
4476
  'type' => 'select',
4477
  'class' => 'ampforwp-google-font-class ampwp-font-families',
4478
- 'title' => __( 'Global Font Family ', 'accelerated-mobile-pages' ),
4479
- 'tooltip-subtitle' => __( 'Select your design from dropdown or ', 'accelerated-mobile-pages' ),
4480
  'options' => array(
4481
  '1' => 'None',
4482
  ),
@@ -4492,8 +4455,8 @@ Redux::setSection( $opt_name, array(
4492
  'type' => 'select',
4493
  'class' => 'ampforwp-google-font-class ampwp-font-family-weights',
4494
  'multi' => true,
4495
- 'title' => __( 'Global Font Weight Selector', 'accelerated-mobile-pages' ),
4496
- 'tooltip-subtitle' => __( 'Select your design from dropdown', 'accelerated-mobile-pages' ),
4497
  'options' => array(
4498
  '1' => 'none',
4499
  ),
@@ -4507,25 +4470,18 @@ Redux::setSection( $opt_name, array(
4507
  'id' =>'google_current_font_data',
4508
  'type' =>'text',
4509
  'class' => 'hide',
4510
- 'title' =>__('Google Font Current Font','accelerated-mobile-pages'),
4511
  'default' =>'',
4512
  'required' => array(
4513
  array('amp-design-selector', '=' , '4')
4514
  )
4515
  ),
4516
 
4517
-
4518
-
4519
-
4520
-
4521
-
4522
-
4523
-
4524
  array(
4525
  'id' => 'content-font-family-enable',
4526
  'type' => 'switch',
4527
  'class' => 'ampforwp-google-font-class',
4528
- 'title' => __('Content Font Selector', 'accelerated-mobile-pages'),
4529
  'required' => array(
4530
  array('amp-design-selector', '=' , '4')
4531
  ),
@@ -4538,8 +4494,8 @@ Redux::setSection( $opt_name, array(
4538
  'id' => 'amp_font_selector_content_single',
4539
  'type' => 'select',
4540
  'class' => 'ampforwp-google-font-class ampwp-font-families',
4541
- 'title' => __( 'Content Font Family Selector', 'accelerated-mobile-pages' ),
4542
- 'tooltip-subtitle' => __( 'Select your design from dropdown or ', 'accelerated-mobile-pages' ),
4543
  'options' => array(
4544
  '1' => 'None',
4545
  ),
@@ -4556,8 +4512,8 @@ Redux::setSection( $opt_name, array(
4556
  'type' => 'select',
4557
  'class' => 'ampforwp-google-font-class ampwp-font-family-weights',
4558
  'multi' => true,
4559
- 'title' => __( 'Content Font Family Weight Selector', 'accelerated-mobile-pages' ),
4560
- 'tooltip-subtitle' => __( 'Select your design from dropdown', 'accelerated-mobile-pages' ),
4561
  'options' => array(
4562
  '1' => 'none',
4563
  ),
@@ -4572,7 +4528,7 @@ Redux::setSection( $opt_name, array(
4572
  'id' =>'google_current_font_data_content_single',
4573
  'type' =>'text',
4574
  'class' => 'hide',
4575
- 'title' =>__('Google Font Current Font','accelerated-mobile-pages'),
4576
  'default' =>'',
4577
  'required' => array(
4578
  array('amp-design-selector', '=' , '4')
@@ -4582,7 +4538,7 @@ Redux::setSection( $opt_name, array(
4582
  array(
4583
  'id' => 'general_sdbar',
4584
  'type' => 'section',
4585
- 'title' => __('General', 'accelerated-mobile-pages'),
4586
  'indent' => true,
4587
  'layout_type' => 'accordion',
4588
  'accordion-open'=> 1,
@@ -4591,7 +4547,7 @@ Redux::setSection( $opt_name, array(
4591
  array(
4592
  'id' => 'gnrl-sidebar',
4593
  'type' => 'switch',
4594
- 'title' => __('Sidebar', 'accelerated-mobile-pages'),
4595
  'default' => 0,
4596
  'required' => array( array('amp-design-selector', '=' , '4') ),
4597
  ),
@@ -4599,7 +4555,7 @@ Redux::setSection( $opt_name, array(
4599
  'id' => 'gbl-sidebar',
4600
  'class' => 'child_opt child_opt_arrow',
4601
  'type' => 'switch',
4602
- 'title' => __('Homepage Sidebar', 'accelerated-mobile-pages'),
4603
  'default' => 0,
4604
  'required' => array( array('gnrl-sidebar', '=' , '1') ),
4605
  ),
@@ -4607,7 +4563,7 @@ Redux::setSection( $opt_name, array(
4607
  'id' => 'sidebar-bgcolor',
4608
  'class' => 'child_opt child_opt_arrow',
4609
  'type' => 'color_rgba',
4610
- 'title' => __('Sidebar Background','accelerated-mobile-pages'),
4611
  'default' => array(
4612
  'color' => '#f7f7f7',
4613
  ),
@@ -4617,7 +4573,7 @@ Redux::setSection( $opt_name, array(
4617
  'id' => 'sbr-heading-color',
4618
  'type' => 'color_rgba',
4619
  'class' => 'child_opt',
4620
- 'title' => __('Heading', 'accelerated-mobile-pages'),
4621
  'default' => array(
4622
  'color' => '#333',
4623
  ),
@@ -4629,7 +4585,7 @@ Redux::setSection( $opt_name, array(
4629
  'id' => 'sbr-text-color',
4630
  'type' => 'color_rgba',
4631
  'class' => 'child_opt',
4632
- 'title' => __('Text', 'accelerated-mobile-pages'),
4633
  'default' => array(
4634
  'color' => '#333',
4635
  ),
@@ -4641,7 +4597,7 @@ Redux::setSection( $opt_name, array(
4641
  'id' => 'swift-sidebar',
4642
  'class' => 'child_opt child_opt_arrow',
4643
  'type' => 'switch',
4644
- 'title' => __('Single Sidebar', 'accelerated-mobile-pages'),
4645
  'default' => 1,
4646
  'required' => array( array('single-design-type', '=' , '4'),
4647
  array('gnrl-sidebar', '=' , '1'),
@@ -4651,7 +4607,7 @@ Redux::setSection( $opt_name, array(
4651
  array(
4652
  'id' => 'design-advanced',
4653
  'type' => 'section',
4654
- 'title' => __('Advanced', 'accelerated-mobile-pages'),
4655
  'indent' => true,
4656
  'layout_type' => 'accordion',
4657
  'accordion-open'=> 1,
@@ -4659,12 +4615,12 @@ Redux::setSection( $opt_name, array(
4659
  array(
4660
  'id' => 'css_editor',
4661
  'type' => 'ace_editor',
4662
- 'title' => __('Custom CSS', 'accelerated-mobile-pages'),
4663
- 'tooltip-subtitle' => __('You can customize the Stylesheet of the AMP version by using this option.', 'accelerated-mobile-pages'),
4664
  'mode' => 'css',
4665
  'theme' => 'monokai',
4666
  'desc' => '',
4667
- 'default' => __('/******* Paste your Custom CSS in this Editor *******/','accelerated-mobile-pages')
4668
  ),
4669
 
4670
  )
@@ -4682,7 +4638,7 @@ Redux::setSection( $opt_name, array(
4682
 
4683
  // Header Section
4684
  Redux::setSection( $opt_name, array(
4685
- 'title' => __( 'Header', 'accelerated-mobile-pages' ),
4686
  'id' => 'amp-theme-header-settings',
4687
  'subsection' => true,
4688
  'tab' => true,
@@ -4692,14 +4648,14 @@ Redux::setSection( $opt_name, array(
4692
  array(
4693
  'id' => 'header_section_1',
4694
  'type' => 'section',
4695
- 'title' => __('Header Design', 'accelerated-mobile-pages'),
4696
  'indent' => true,
4697
  'layout_type' => 'accordion',
4698
  'accordion-open'=> 1,
4699
  ),
4700
  array(
4701
  'id' => 'header-type',
4702
- 'title' => __('Header Type', 'accelerated-mobile-pages'),
4703
  'type' => 'image_select',
4704
  'options'=> array(
4705
  '1' => array(
@@ -4716,21 +4672,19 @@ Redux::setSection( $opt_name, array(
4716
  ),
4717
  ),
4718
  'default'=> '1',
4719
- // 'max-width' => 200,
4720
- // 'max-height'=> 60,
4721
  'required' => array( array('amp-design-selector', '=' , '4') ),
4722
  ),
4723
  array(
4724
  'id' => 'header_section_2',
4725
  'type' => 'section',
4726
- 'title' => __('Navigation Menu Design', 'accelerated-mobile-pages'),
4727
  'indent' => true,
4728
  'layout_type' => 'accordion',
4729
  'accordion-open'=> 1,
4730
  ),
4731
  array(
4732
  'id' => 'menu-type',
4733
- 'title' => __('Menu Type', 'accelerated-mobile-pages'),
4734
  'type' => 'image_select',
4735
  'options'=> array(
4736
  '1' => array(
@@ -4739,14 +4693,12 @@ Redux::setSection( $opt_name, array(
4739
  ),
4740
  ),
4741
  'default'=> '1',
4742
- // 'max-width' => 200,
4743
- // 'max-height'=> 60,
4744
  'required' => array( array('amp-design-selector', '=' , '4') ),
4745
  ),
4746
  array(
4747
  'id' => 'menu-search',
4748
  'type' => 'switch',
4749
- 'title' => __('Menu Search', 'accelerated-mobile-pages'),
4750
  'required' => array(
4751
  array('amp-design-selector', '=' , '4')
4752
  ),
@@ -4755,7 +4707,7 @@ Redux::setSection( $opt_name, array(
4755
  array(
4756
  'id' => 'amp-swift-menu-cprt',
4757
  'type' => 'switch',
4758
- 'title' => __( 'Menu Copyright', 'accelerated-mobile-pages' ),
4759
  'required' => array(
4760
  array('amp-design-selector', '=' , '4')
4761
  ),
@@ -4764,7 +4716,7 @@ Redux::setSection( $opt_name, array(
4764
  array(
4765
  'id' => 'primary-menu',
4766
  'type' => 'switch',
4767
- 'title' => __('Alternative Menu', 'accelerated-mobile-pages'),
4768
  'true' => 'true',
4769
  'false' => 'false',
4770
  'default' => '1',
@@ -4778,7 +4730,7 @@ Redux::setSection( $opt_name, array(
4778
  'mode' => 'padding',
4779
  'units' => array('px'),
4780
  'units_extended' => 'false',
4781
- 'title' => __('Alt Menu Padding', 'accelerated-mobile-pages'),
4782
  'default' => array(
4783
  'padding-top' => '12px',
4784
  'padding-right' => '25px',
@@ -4793,7 +4745,7 @@ Redux::setSection( $opt_name, array(
4793
  array(
4794
  'class' => 'child_opt',
4795
  'id' => 'primary-menu-text-scheme',
4796
- 'title' => __('Alt Menu Text', 'accelerated-mobile-pages'),
4797
  'type' => 'color_rgba',
4798
  'default' => array(
4799
  'rgba' => 'rgb(53, 53, 53)',
@@ -4805,7 +4757,7 @@ Redux::setSection( $opt_name, array(
4805
  array(
4806
  'class' => 'child_opt',
4807
  'id' => 'primary-menu-background-scheme',
4808
- 'title' => __('Alt Menu Background', 'accelerated-mobile-pages'),
4809
  'type' => 'color_rgba',
4810
  'default' => array(
4811
  'rgba' => 'rgb(239, 239, 239)',
@@ -4818,7 +4770,7 @@ Redux::setSection( $opt_name, array(
4818
  'id' => 'drp-dwn',
4819
  'type' => 'switch',
4820
  'class' => 'child_opt child_opt_arrow',
4821
- 'title' => __('Dropdown Support', 'accelerated-mobile-pages'),
4822
  'true' => 'true',
4823
  'false' => 'false',
4824
  'default' => 0,
@@ -4826,8 +4778,8 @@ Redux::setSection( $opt_name, array(
4826
  ),
4827
  array(
4828
  'id' => 'signin-button',
4829
- 'title' => __('Button Customize', 'accelerated-mobile-pages'),
4830
- 'tooltip-subtitle' => __('You can do the customization here ','accelerated-mobile-pages'),
4831
  'type' => 'switch',
4832
  'default' => '0',
4833
  'required' => array(
@@ -4836,8 +4788,8 @@ Redux::setSection( $opt_name, array(
4836
  ),
4837
  array(
4838
  'id' => 'signin-button-text',
4839
- 'title' => __('Button Text', 'accelerated-mobile-pages'),
4840
- 'tooltip-subtitle' => __('You can write your required text ','accelerated-mobile-pages'),
4841
  'type' => 'text',
4842
  'default' => 'Sign up free',
4843
  'required' => array(
@@ -4846,8 +4798,8 @@ Redux::setSection( $opt_name, array(
4846
  ),
4847
  array(
4848
  'id' => 'signin-button-link',
4849
- 'title' => __('Button Link', 'accelerated-mobile-pages'),
4850
- 'tooltip-subtitle' => __('You can add the Link here ','accelerated-mobile-pages'),
4851
  'type' => 'text',
4852
  'default' => '#',
4853
  'required' => array(
@@ -4856,8 +4808,8 @@ Redux::setSection( $opt_name, array(
4856
  ),
4857
  array(
4858
  'id' => 'signin-button-style',
4859
- 'title' => __('Button Styles', 'accelerated-mobile-pages'),
4860
- 'tooltip-subtitle' => __('You can change the button here','accelerated-mobile-pages'),
4861
  'type' => 'switch',
4862
  'default' => '0',
4863
  'required' => array(
@@ -4866,8 +4818,8 @@ Redux::setSection( $opt_name, array(
4866
  ),
4867
  array(
4868
  'id' => 'signin-button-border-line',
4869
- 'title' => __('Button Border Line', 'accelerated-mobile-pages'),
4870
- 'tooltip-subtitle' => __('You can change the button border line','accelerated-mobile-pages'),
4871
  'type' => 'text',
4872
  'default' => '2',
4873
  'required' => array(
@@ -4876,8 +4828,8 @@ Redux::setSection( $opt_name, array(
4876
  ),
4877
  array(
4878
  'id' => 'signin-button-text-color',
4879
- 'title' => __('Button Text Color', 'accelerated-mobile-pages'),
4880
- 'tooltip-subtitle' => __('Choose the color for Button Texxt','accelerated-mobile-pages'),
4881
  'type' => 'color_rgba',
4882
  'default' => array(
4883
  'rgba' => 'rgb(0, 0, 0)',
@@ -4888,8 +4840,8 @@ Redux::setSection( $opt_name, array(
4888
  ),
4889
  array(
4890
  'id' => 'signin-button-border-color',
4891
- 'title' => __('Button Border Line Color', 'accelerated-mobile-pages'),
4892
- 'tooltip-subtitle' => __('Choose the color for Button Border Line','accelerated-mobile-pages'),
4893
  'type' => 'color_rgba',
4894
  'default' => array(
4895
  'rgba' => 'rgb(0, 0, 0)',
@@ -4900,7 +4852,7 @@ Redux::setSection( $opt_name, array(
4900
  ),
4901
  array(
4902
  'id' => 'border-type',
4903
- 'title' => __('Border Type', 'accelerated-mobile-pages'),
4904
  'type' => 'select',
4905
  'options'=> array(
4906
  '1' => 'Square',
@@ -4912,8 +4864,8 @@ Redux::setSection( $opt_name, array(
4912
  ),
4913
  array(
4914
  'id' => 'border-radius',
4915
- 'title' => __('Customize Border Radius', 'accelerated-mobile-pages'),
4916
- 'tooltip-subtitle' => __('You can change the border radius','accelerated-mobile-pages'),
4917
  'type' => 'text',
4918
  'default' => '10',
4919
  'required' => array(
@@ -4923,9 +4875,9 @@ Redux::setSection( $opt_name, array(
4923
  array(
4924
  'id' => 'ampforwp-amp-menu',
4925
  'type' => 'switch',
4926
- 'title' => __('Navigation Menu', 'accelerated-mobile-pages'),
4927
- 'desc' => __( 'Add Menus to your AMP pages by clicking on this <a href="'.trailingslashit(get_admin_url()).'nav-menus.php?action=locations">link</a>' , 'accelerated-mobile-pages'),
4928
- 'tooltip-subtitle' => __('Enable/Disable Menu from header', 'accelerated-mobile-pages'),
4929
  'true' => 'true',
4930
  'false' => 'false',
4931
  'default' => 1,
@@ -4935,7 +4887,7 @@ Redux::setSection( $opt_name, array(
4935
  array(
4936
  'id' => 'header_section_3',
4937
  'type' => 'section',
4938
- 'title' => __('Header Settings', 'accelerated-mobile-pages'),
4939
  'indent' => true,
4940
  'layout_type' => 'accordion',
4941
  'accordion-open'=> 1,
@@ -4944,7 +4896,7 @@ Redux::setSection( $opt_name, array(
4944
  array(
4945
  'id' => 'ampforwp-callnow-button',
4946
  'type' => 'switch',
4947
- 'title' => __('Call Now Button', 'accelerated-mobile-pages'),
4948
  'true' => 'true',
4949
  'false' => 'false',
4950
  'required' => array(
@@ -4960,30 +4912,30 @@ Redux::setSection( $opt_name, array(
4960
  array('ampforwp-callnow-button', '=' , '1'),
4961
  array('amp-design-selector', '!=' , '1')
4962
  ),
4963
- 'title' => __('Enter Phone Number', 'accelerated-mobile-pages'),
4964
  'default' => '',
4965
  ),
4966
  array(
4967
  'id' =>'amp-on-off-support-for-non-amp-home-page',
4968
  'type' => 'switch',
4969
- 'title' => __('Non-AMP link in Header', 'accelerated-mobile-pages'),
4970
- 'tooltip-subtitle' => __('If you want users in header to go to non-AMP website from the Header', 'accelerated-mobile-pages'),
4971
  'default' => 0,
4972
  ),
4973
  array(
4974
  'id' => 'amp-opt-sticky-head',
4975
  'type' => 'switch',
4976
- 'title' => __('Make Header UnSticky','accelerated-mobile-pages'),
4977
  'required' => array(
4978
  array('amp-design-selector', '=' , '3')
4979
  ),
4980
- 'tooltip-subtitle' => __('Turning it ON will remove the sticky head from the design.', 'accelerated-mobile-pages' ),
4981
  'default' => '0'
4982
  ),
4983
  array(
4984
  'id' => 'amp-design-3-search-feature',
4985
  'type' => 'switch',
4986
- 'title' => __( 'Search', 'accelerated-mobile-pages' ),
4987
  'required' => array(
4988
  array('amp-design-selector', '=' , '3')
4989
  ),
@@ -4993,7 +4945,7 @@ Redux::setSection( $opt_name, array(
4993
  array(
4994
  'id' => 'amp-design-2-search-feature',
4995
  'type' => 'switch',
4996
- 'title' => __( 'Search', 'accelerated-mobile-pages' ),
4997
  'required' => array(
4998
  array('amp-design-selector', '=' , '2')
4999
  ),
@@ -5003,7 +4955,7 @@ Redux::setSection( $opt_name, array(
5003
  array(
5004
  'id' => 'amp-design-1-search-feature',
5005
  'type' => 'switch',
5006
- 'title' => __( 'Search', 'accelerated-mobile-pages' ),
5007
  'required' => array(
5008
  array('amp-design-selector', '=' , '1')
5009
  ),
@@ -5012,7 +4964,7 @@ Redux::setSection( $opt_name, array(
5012
  array(
5013
  'id' => 'amp-swift-search-feature',
5014
  'type' => 'switch',
5015
- 'title' => __( 'Search', 'accelerated-mobile-pages' ),
5016
  'required' => array(
5017
  array('amp-design-selector', '=' , '4')
5018
  ),
@@ -5030,7 +4982,7 @@ Redux::setSection( $opt_name, array(
5030
  array(
5031
  'id' => 'amp-opt-color-rgba-headercolor',
5032
  'type' => 'color_rgba',
5033
- 'title' => __('Header Background','accelerated-mobile-pages'),
5034
  'default' => array(
5035
  'color' => '#FFFFFF',
5036
  ),
@@ -5041,7 +4993,7 @@ Redux::setSection( $opt_name, array(
5041
  array(
5042
  'id' => 'amp-opt-color-rgba-headerelements',
5043
  'type' => 'color_rgba',
5044
- 'title' => __('Header Elements','accelerated-mobile-pages'),
5045
  'default' => array(
5046
  'color' => ampforwp_get_element_default_color(),
5047
  ),
@@ -5050,20 +5002,11 @@ Redux::setSection( $opt_name, array(
5050
  )
5051
  ),
5052
  // Tab 1 end
5053
- /* array(
5054
- 'id' => 'header-tab-1-end',
5055
- 'type' => 'section',
5056
- 'title' => __('Tab 1', 'accelerated-mobile-pages'),
5057
- 'end' => true,
5058
- /*'required' => array(
5059
- array('amp-design-selector', '=' , '4')
5060
- ),
5061
- ),*/
5062
  // Tab 2
5063
  array(
5064
  'id' => 'header-tab-2',
5065
  'type' => 'section',
5066
- 'title' => __('Advanced Header Options', 'accelerated-mobile-pages'),
5067
  'indent' => true,
5068
  //'start' => true,
5069
  //'label' => 'Tab 2',
@@ -5076,7 +5019,7 @@ Redux::setSection( $opt_name, array(
5076
  array(
5077
  'id' => 'customize-options',
5078
  'type' => 'switch',
5079
- 'title' => __('Advanced Header Design', 'accelerated-mobile-pages'),
5080
  'default' => 0,
5081
  'required' => array( array('amp-design-selector', '=' , '4') ),
5082
  ),
@@ -5084,7 +5027,7 @@ Redux::setSection( $opt_name, array(
5084
  'id' => 'swift-width-control',
5085
  'class' => 'child_opt',
5086
  'type' => 'text',
5087
- 'title' => __('Header Width', 'accelerated-mobile-pages'),
5088
  'default' => '1100px',
5089
  'required' => array(
5090
  array('customize-options','=',1)
@@ -5094,7 +5037,7 @@ Redux::setSection( $opt_name, array(
5094
  'class' => 'child_opt',
5095
  'id' => 'swift-height-control',
5096
  'type' => 'text',
5097
- 'title' => __('Header Height', 'accelerated-mobile-pages'),
5098
  'default' => '60px',
5099
  'required' => array(
5100
  array('customize-options','=',1)
@@ -5104,7 +5047,7 @@ Redux::setSection( $opt_name, array(
5104
  'class' => 'child_opt',
5105
  'id' => 'margin-padding-options',
5106
  'type' => 'switch',
5107
- 'title' => __('Margin / Padding ', 'accelerated-mobile-pages'),
5108
  'default' => 0,
5109
  'required' => array(
5110
  array('customize-options','=',1)
@@ -5118,7 +5061,7 @@ Redux::setSection( $opt_name, array(
5118
  'mode' => 'padding',
5119
  'units' => array('px','%'),
5120
  'units_extended' => 'false',
5121
- 'title' => __('Padding', 'accelerated-mobile-pages'),
5122
  'default' => array(
5123
  'padding-top' => '0px',
5124
  'padding-right' => '0px',
@@ -5138,7 +5081,7 @@ Redux::setSection( $opt_name, array(
5138
  'mode' => 'margin',
5139
  'units' => array('px'),
5140
  'units_extended' => 'false',
5141
- 'title' => __('Margin', 'accelerated-mobile-pages'),
5142
  'default' => array(
5143
  'margin-top' => '0px',
5144
  'margin-right' => '0px',
@@ -5154,7 +5097,7 @@ Redux::setSection( $opt_name, array(
5154
  'class' => 'child_opt',
5155
  'id' => 'border-line',
5156
  'type' => 'switch',
5157
- 'title' => __('Border and Boxshadow', 'accelerated-mobile-pages'),
5158
  'default' => 0,
5159
  'required' => array(
5160
  array('customize-options','=',1)
@@ -5165,8 +5108,8 @@ Redux::setSection( $opt_name, array(
5165
  'class' => 'child_opt',
5166
  'id' => 'swift-border-line-control',
5167
  'type' => 'text',
5168
- 'title' => __('Border', 'accelerated-mobile-pages'),
5169
- 'tooltip-subtitle' => __('Border at the bottom', 'accelerated-mobile-pages'),
5170
  'default' => '1',
5171
  'required' => array(
5172
  array('border-line','=',1)
@@ -5176,7 +5119,7 @@ Redux::setSection( $opt_name, array(
5176
  'class' => 'child_opt',
5177
  'id' => 'swift-border-color-control',
5178
  'type' => 'color_rgba',
5179
- 'title' => __('Border Color', 'accelerated-mobile-pages'),
5180
  'default' => array(
5181
  'rgba' => 'rgba(0,0,0,0.12)',
5182
  ),
@@ -5188,7 +5131,7 @@ Redux::setSection( $opt_name, array(
5188
  'class' => 'child_opt',
5189
  'id' => 'swift-boxshadow-checkbox-control',
5190
  'type' => 'switch',
5191
- 'title' => __('Box Shadow', 'accelerated-mobile-pages'),
5192
  'default' => 0,
5193
  'required' => array(
5194
  array('border-line','=',1)
@@ -5199,7 +5142,7 @@ Redux::setSection( $opt_name, array(
5199
  array(
5200
  'class' => 'child_opt',
5201
  'id' => 'swift-background-scheme',
5202
- 'title' => __('Header Background', 'accelerated-mobile-pages'),
5203
  'type' => 'color_rgba',
5204
  'default' => array(
5205
  'rgba' => 'rgba(255, 255, 255, 255)',
@@ -5211,7 +5154,7 @@ Redux::setSection( $opt_name, array(
5211
  array(
5212
  'class' => 'child_opt',
5213
  'id' => 'swift-header-overlay',
5214
- 'title' => __('Menu Background', 'accelerated-mobile-pages'),
5215
  'type' => 'color_rgba',
5216
  'default' => array(
5217
  'rgba' => 'rgba(20, 20, 22, 0.9)',
@@ -5223,8 +5166,8 @@ Redux::setSection( $opt_name, array(
5223
  array(
5224
  'class' => 'child_opt',
5225
  'id' => 'swift-element-color-control',
5226
- 'title' => __('Header Elements', 'accelerated-mobile-pages'),
5227
- 'tooltip-subtitle' => __('Color of the Text and Icons on top of Header','accelerated-mobile-pages'),
5228
  'type' => 'color_rgba',
5229
  'default' => array(
5230
  'color' => '#333',
@@ -5236,7 +5179,7 @@ Redux::setSection( $opt_name, array(
5236
  array(
5237
  'class' => 'child_opt',
5238
  'id' => 'swift-element-overlay-color-control',
5239
- 'title' => __('Menu Color', 'accelerated-mobile-pages'),
5240
  'type' => 'color_rgba',
5241
  'default' => array(
5242
  'rgba' => 'rgba(255, 255, 255, 0.8)',
@@ -5248,7 +5191,7 @@ Redux::setSection( $opt_name, array(
5248
  array(
5249
  'class' => 'child_opt',
5250
  'id' => 'swift-element-menu-border-color',
5251
- 'title' => __('Menu Border Color ', 'accelerated-mobile-pages'),
5252
  'type' => 'color_rgba',
5253
  'default' => array(
5254
  'rgba' => 'rgb(47, 47, 47, 1)',
@@ -5262,7 +5205,7 @@ Redux::setSection( $opt_name, array(
5262
  array(
5263
  'class' => 'child_opt',
5264
  'id' => 'header-position-type',
5265
- 'title' => __('Menu Overlay Position', 'accelerated-mobile-pages'),
5266
  'type' => 'select',
5267
  'options'=> array(
5268
  '1' => 'Left',
@@ -5277,7 +5220,7 @@ Redux::setSection( $opt_name, array(
5277
  'class' => 'child_opt',
5278
  'id' => 'header-overlay-width',
5279
  'type' => 'text',
5280
- 'title' => __('Menu Overlay Width', 'accelerated-mobile-pages'),
5281
  'default' => '90%',
5282
  'required' => array(
5283
  array('customize-options','=',1)
@@ -5285,15 +5228,6 @@ Redux::setSection( $opt_name, array(
5285
  ),
5286
 
5287
  // Tab 2 end
5288
- /*array(
5289
- 'id' => 'header-tab-2-end',
5290
- 'type' => 'section',
5291
- 'title' => __('Tab 2', 'accelerated-mobile-pages'),
5292
- 'end' => true,
5293
- 'required' => array(
5294
- array('amp-design-selector', '=' , '4')
5295
- ),
5296
- ),*/
5297
 
5298
  )
5299
  )
@@ -5345,14 +5279,14 @@ Redux::setSection( $opt_name, array(
5345
 
5346
  // HomePage Section
5347
  Redux::setSection( $opt_name, array(
5348
- 'title' => __( 'HomePage', 'accelerated-mobile-pages' ),
5349
  'id' => 'amp-theme-homepage-settings',
5350
  'subsection' => true,
5351
  'fields' => array(
5352
  array(
5353
  'id' => 'ampforwp-homepage-section-general',
5354
  'type' => 'section',
5355
- 'title' => __('General', 'accelerated-mobile-pages'),
5356
  'indent' => true,
5357
  'layout_type' => 'accordion',
5358
  'accordion-open'=> 1,
@@ -5360,7 +5294,7 @@ Redux::setSection( $opt_name, array(
5360
  array(
5361
  'id' => 'amp-design-3-featured-slider',
5362
  'type' => 'switch',
5363
- 'title' => __( 'Featured Slider', 'accelerated-mobile-pages' ),
5364
  'required' => array(
5365
  array('amp-design-selector', '=' , '3')
5366
  ),
@@ -5369,7 +5303,7 @@ Redux::setSection( $opt_name, array(
5369
  array(
5370
  'id' => 'amp-design-3-featured-content',
5371
  'type' => 'select',
5372
- 'title' => __( 'Featured Slider Content', 'accelerated-mobile-pages' ),
5373
  'required' => array(
5374
  array('amp-design-3-featured-slider', '=' , '1')
5375
  ),
@@ -5384,7 +5318,7 @@ Redux::setSection( $opt_name, array(
5384
  'id' => 'amp-design-3-category-selector',
5385
  'type' => 'select',
5386
  'class' => 'child_opt',
5387
- 'title' => __( 'Featured Slider Category', 'accelerated-mobile-pages' ),
5388
  'options' => $categories_array,
5389
  'required' => array(
5390
  array('amp-design-selector', '=' , '3'),
@@ -5396,7 +5330,7 @@ Redux::setSection( $opt_name, array(
5396
  'id' => 'amp-design-3-tag-selector',
5397
  'type' => 'select',
5398
  'class' => 'child_opt',
5399
- 'title' => __( 'Featured Slider from Tags', 'accelerated-mobile-pages' ),
5400
  'options' => $tags_array,
5401
  'required' => array(
5402
  array('amp-design-selector', '=' , '3'),
@@ -5408,7 +5342,7 @@ Redux::setSection( $opt_name, array(
5408
  'id' =>'ampforwp-featur-slider-num-posts',
5409
  'type' =>'text',
5410
  'class' => 'child_opt',
5411
- 'title' =>__('Number of Posts','accelerated-mobile-pages'),
5412
  'required' => array(
5413
  array('amp-design-3-featured-slider', '=' , '1'),
5414
  ),
@@ -5419,7 +5353,7 @@ Redux::setSection( $opt_name, array(
5419
  'id' => 'ampforwp-featur-slider-autop',
5420
  'type' => 'switch',
5421
  'class' => 'child_opt',
5422
- 'title' => __('Autoplay', 'accelerated-mobile-pages'),
5423
  'default' => '1',
5424
  'required' => array(
5425
  array('amp-design-3-featured-slider', '=' , '1'),
@@ -5429,7 +5363,7 @@ Redux::setSection( $opt_name, array(
5429
  'id' =>'ampforwp-featur-slider-autop-delay',
5430
  'type' =>'text',
5431
  'class' => 'child_opt',
5432
- 'title' =>__('Delay in Autoplay','accelerated-mobile-pages'),
5433
  'required' => array(
5434
  array('ampforwp-featur-slider-autop', '=' , '1'),
5435
  ),
@@ -5441,14 +5375,14 @@ Redux::setSection( $opt_name, array(
5441
 
5442
  'id' => 'excerpt-option',
5443
  'type' => 'switch',
5444
- 'title' => __('Excerpt', 'accelerated-mobile-pages'),
5445
  'default' => '1',
5446
  ),
5447
  array(
5448
  'id' =>'amp-design-1-excerpt',
5449
  'type' =>'text',
5450
- 'tooltip-subtitle' =>__('Enter the number of words Eg: 10','accelerated-mobile-pages'),
5451
- 'title' =>__('Excerpt Length','accelerated-mobile-pages'),
5452
  'required' => array(
5453
  array('amp-design-selector', '=' , '1'),
5454
  array('excerpt-option', '=' , '1'),
@@ -5459,7 +5393,7 @@ Redux::setSection( $opt_name, array(
5459
  array(
5460
  'id' => 'ampforwp-design1-cats-home',
5461
  'type' => 'switch',
5462
- 'title' => __('Category label', 'accelerated-mobile-pages'),
5463
  'default' => '0',
5464
  'required' => array(
5465
  array('amp-design-selector', '=' , '1'),
@@ -5470,8 +5404,8 @@ Redux::setSection( $opt_name, array(
5470
  array(
5471
  'id' =>'amp-design-2-excerpt',
5472
  'type' =>'text',
5473
- 'tooltip-subtitle' =>__('Enter the number of words Eg: 10','accelerated-mobile-pages'),
5474
- 'title' =>__('Excerpt Length','accelerated-mobile-pages'),
5475
  'required' => array(
5476
  array('amp-design-selector', '=' , '2')),
5477
  'validate' =>'numeric',
@@ -5481,7 +5415,7 @@ Redux::setSection( $opt_name, array(
5481
 
5482
  'id' => 'excerpt-option-design-2',
5483
  'type' => 'switch',
5484
- 'title' => __('Excerpt on Small Screens', 'accelerated-mobile-pages'),
5485
  'default' => '0',
5486
  'required' => array(
5487
  array('amp-design-selector', '=' , '2'),
@@ -5493,8 +5427,8 @@ Redux::setSection( $opt_name, array(
5493
  array(
5494
  'id' =>'amp-design-3-excerpt',
5495
  'type' =>'text',
5496
- 'tooltip-subtitle' =>__('Enter the number of words Eg: 10','accelerated-mobile-pages'),
5497
- 'title' =>__('Excerpt Length','accelerated-mobile-pages'),
5498
  'required' => array(
5499
  array('amp-design-selector', '=' , '3'),
5500
  array('excerpt-option', '=' , '1') ),
@@ -5504,7 +5438,7 @@ Redux::setSection( $opt_name, array(
5504
  array(
5505
  'id' => 'excerpt-option-design-3',
5506
  'type' => 'switch',
5507
- 'title' => __('Excerpt on Small Screens', 'accelerated-mobile-pages'),
5508
  'default' => '0',
5509
  'required' => array(
5510
  array('amp-design-selector', '=' , '3'),
@@ -5516,8 +5450,8 @@ Redux::setSection( $opt_name, array(
5516
  array(
5517
  'id' =>'amp-design-1-featured-time',
5518
  'type' =>'switch',
5519
- 'title' =>__('Published Time','accelerated-mobile-pages'),
5520
- 'tooltip-subtitle' => __('Display published time of the post on homepage', 'accelerated-mobile-pages'),
5521
  'required' => array(array('amp-design-selector', '=' , '1') ),
5522
  'default' =>'1',
5523
  ),
@@ -5525,8 +5459,8 @@ Redux::setSection( $opt_name, array(
5525
  array(
5526
  'id' =>'amp-design-3-featured-time',
5527
  'type' =>'switch',
5528
- 'title' =>__('Published Time','accelerated-mobile-pages'),
5529
- 'tooltip-subtitle' => __('Display published time of the post on homepage', 'accelerated-mobile-pages'),
5530
  'required' => array(array('amp-design-selector', '=' , '3') ),
5531
  'default' =>'1',
5532
  ),
@@ -5535,7 +5469,7 @@ Redux::setSection( $opt_name, array(
5535
  array(
5536
  'id' => 'ampforwp-homepage-posts-image-modify-size',
5537
  'type' => 'switch',
5538
- 'title' => __('Override Homepage Thumbnail Size', 'accelerated-mobile-pages'),
5539
  'required' => array( array( 'amp-design-selector','!=',3 ) ),
5540
  'default' => 0,
5541
  ),
@@ -5543,8 +5477,8 @@ Redux::setSection( $opt_name, array(
5543
  'class' => 'child_opt child_opt_arrow',
5544
  'id' => 'ampforwp-homepage-posts-design-1-2-width',
5545
  'type' => 'text',
5546
- 'title' => __('Image Width', 'accelerated-mobile-pages'),
5547
- 'tooltip-subtitle' => __('Defaults to 100', 'accelerated-mobile-pages'),
5548
  'default' => 100,
5549
  'required' => array(
5550
  array('amp-design-selector','!=',3),
@@ -5556,8 +5490,8 @@ Redux::setSection( $opt_name, array(
5556
  'class' => 'child_opt',
5557
  'id' => 'ampforwp-homepage-posts-design-1-2-height',
5558
  'type' => 'text',
5559
- 'title' => __('Image Height', 'accelerated-mobile-pages'),
5560
- 'tooltip-subtitle' => __('Defaults to 75', 'accelerated-mobile-pages'),
5561
  'default' => 75,
5562
  'required' => array(
5563
  array('amp-design-selector','!=',3),
@@ -5569,8 +5503,8 @@ Redux::setSection( $opt_name, array(
5569
  'class' => 'child_opt',
5570
  'id' => 'ampforwp-swift-homepage-posts-width',
5571
  'type' => 'text',
5572
- 'title' => __('Image Width', 'accelerated-mobile-pages'),
5573
- 'tooltip-subtitle' => __('Defaults to 346', 'accelerated-mobile-pages'),
5574
  'default' => 346,
5575
  'required' => array(
5576
  array('amp-design-selector','=',4),
@@ -5581,8 +5515,8 @@ Redux::setSection( $opt_name, array(
5581
  'class' => 'child_opt',
5582
  'id' => 'ampforwp-swift-homepage-posts-height',
5583
  'type' => 'text',
5584
- 'title' => __('Image Height', 'accelerated-mobile-pages'),
5585
- 'tooltip-subtitle' => __('Defaults to 188', 'accelerated-mobile-pages'),
5586
  'default' => 188,
5587
  'required' => array(
5588
  array('amp-design-selector','=',4),
@@ -5592,7 +5526,7 @@ Redux::setSection( $opt_name, array(
5592
  array(
5593
  'id' => 'ampforwp-homepage-section-loop',
5594
  'type' => 'section',
5595
- 'title' => __('Loop Display Controls', 'accelerated-mobile-pages'),
5596
  'indent' => true,
5597
  'layout_type' => 'accordion',
5598
  'accordion-open'=> 1,
@@ -5600,21 +5534,21 @@ Redux::setSection( $opt_name, array(
5600
  array(
5601
  'id' => 'ampforwp-homepage-loop-type',
5602
  'type' => 'select',
5603
- 'title' => __( 'Post Type in Loop', 'accelerated-mobile-pages' ),
5604
  'options' => $ampforwp_home_loop,
5605
  'default' => 'post',
5606
  ),
5607
  array(
5608
  'id' => 'ampforwp-homepage-loop-cats',
5609
  'type' => 'select',
5610
- 'title' => __( 'Exclude Categories', 'accelerated-mobile-pages' ),
5611
  'data' => 'categories',
5612
  'multi' => true
5613
  ),
5614
  array(
5615
  'id' => 'ampforwp-homepage-loop-readmore-link',
5616
  'type' => 'switch',
5617
- 'title' => __('Read More Link', 'accelerated-mobile-pages'),
5618
  'default' => 0,
5619
  ),
5620
 
@@ -5626,7 +5560,7 @@ $single_page_options = array(
5626
  array(
5627
  'id' => 'ampforwp-single_section_1',
5628
  'type' => 'section',
5629
- 'title' => __('Single Post Design', 'accelerated-mobile-pages'),
5630
  'indent' => true,
5631
  'layout_type' => 'accordion',
5632
  'accordion-open'=> 1,
@@ -5634,7 +5568,7 @@ $single_page_options = array(
5634
  // Swift
5635
  array(
5636
  'id' => 'single-design-type',
5637
- 'title' => __('Single Design', 'accelerated-mobile-pages'),
5638
  'type' => 'image_select',
5639
  'options'=> array(
5640
  '1' => array(
@@ -5648,15 +5582,13 @@ $single_page_options = array(
5648
 
5649
  ),
5650
  'default'=> '1',
5651
- // 'max-width' => 200,
5652
- // 'max-height'=> 60,
5653
  'required' => array( array('amp-design-selector', '=' , '4') ),
5654
  ),
5655
 
5656
  array(
5657
  'id' => 'ampforwp-single_section_2',
5658
  'type' => 'section',
5659
- 'title' => __('Single Elements', 'accelerated-mobile-pages'),
5660
  'indent' => true,
5661
  'layout_type' => 'accordion',
5662
  'accordion-open'=> 1,
@@ -5664,14 +5596,14 @@ $single_page_options = array(
5664
  array(
5665
  'id' => 'swift-featued-image',
5666
  'type' => 'switch',
5667
- 'title' => __('Featured Image', 'accelerated-mobile-pages'),
5668
  'default' => 1,
5669
  'required' => array( array('amp-design-selector', '=' , '4') ),
5670
  ),
5671
  array(
5672
  'id' => 'swift-date',
5673
  'type' => 'switch',
5674
- 'title' => __('Published Date', 'accelerated-mobile-pages'),
5675
  'default' => 1,
5676
  'required' => array( array('amp-design-selector', '=' , '4') ),
5677
  ),
@@ -5680,29 +5612,29 @@ $single_page_options = array(
5680
  'id' => 'ampforwp-amp-img-lightbox',
5681
  'type' => 'switch',
5682
  'default' => '0',
5683
- 'title' => __('Lightbox for Images', 'accelerated-mobile-pages'),
5684
  ),
5685
  // Dropcap
5686
  array(
5687
  'id' => 'ampforwp-dropcap',
5688
  'type' => 'switch',
5689
  'default' => '0',
5690
- 'title' => __('Dropcap', 'accelerated-mobile-pages'),
5691
  ),
5692
  //Breadcrumb ON/OFF
5693
  array(
5694
  'id' => 'ampforwp-bread-crumb',
5695
  'type' => 'switch',
5696
  'default' => '1',
5697
- 'title' => __('Breadcrumbs', 'accelerated-mobile-pages'),
5698
  ),
5699
  //Breadcrumb for Tags
5700
  array(
5701
  'class' => 'child_opt child_opt_arrow',
5702
  'id' => 'ampforwp-bread-crumb-type',
5703
  'type' => 'select',
5704
- 'tooltip-subtitle' => __('Select option to enable breadcrumb with tags or category','accelerated-mobile-pages'),
5705
- 'title' => __('Select Breadcrumb Type', 'accelerated-mobile-pages'),
5706
  'options' => array(
5707
  'tags' => 'Tags',
5708
  'category' => 'Category',
@@ -5715,8 +5647,8 @@ $single_page_options = array(
5715
  'id' => 'ampforwp-cats-single',
5716
  'type' => 'switch',
5717
  'default' => '1',
5718
- 'title' => __('Categories', 'accelerated-mobile-pages'),
5719
- 'tooltip-subtitle' => __('Enable or Disable Categories in Single', 'accelerated-mobile-pages'),
5720
  'required' => array( array('amp-design-selector', '!=' , '4') )
5721
  ),
5722
  //Tags ON/OFF
@@ -5724,43 +5656,43 @@ $single_page_options = array(
5724
  'id' => 'ampforwp-tags-single',
5725
  'type' => 'switch',
5726
  'default' => '1',
5727
- 'title' => __('Tags', 'accelerated-mobile-pages'),
5728
  ),
5729
  //Categories and Tags Links
5730
  array(
5731
  'id' => 'ampforwp-cats-tags-links-single',
5732
  'type' => 'switch',
5733
  'default' => '1',
5734
- 'title' => __('Categories & Tags Links', 'accelerated-mobile-pages'),
5735
  'required' => array('ampforwp-archive-support', '=' , '1'),
5736
  ),
5737
  // Social Icons ON/OFF
5738
  array(
5739
  'id' => 'enable-single-social-icons',
5740
  'type' => 'switch',
5741
- 'title' => __('Sticky Social Icons', 'accelerated-mobile-pages'),
5742
  'default' => 1,
5743
  ),
5744
  // Excerpt ON/OFF
5745
  array(
5746
  'id' => 'enable-excerpt-single',
5747
  'type' => 'switch',
5748
- 'title' => __('Excerpt', 'accelerated-mobile-pages'),
5749
  'default' => 0,
5750
- 'tooltip-subtitle' => __('Excerpt will be displayed above content', 'accelerated-mobile-pages'),
5751
  ),
5752
  //deselectable next previous links
5753
  array(
5754
  'id' => 'enable-single-next-prev',
5755
  'type' => 'switch',
5756
- 'title' => __('Next-Previous Links', 'accelerated-mobile-pages'),
5757
  'default' => 1,
5758
  ),
5759
  // Author name
5760
  array(
5761
  'id' => 'amp-author-name',
5762
  'type' => 'switch',
5763
- 'title' => __( 'Author Name', 'accelerated-mobile-pages' ),
5764
  'default' => '1',
5765
  'required' => array('amp-design-selector' , '=' , '4')
5766
  ),
@@ -5768,22 +5700,22 @@ $single_page_options = array(
5768
  array(
5769
  'id' => 'amp-author-description',
5770
  'type' => 'switch',
5771
- 'title' => __( 'Author Bio', 'accelerated-mobile-pages' ),
5772
  'default' => '1',
5773
  ),
5774
  // Pagination //#1015
5775
  array(
5776
  'id' => 'amp-pagination',
5777
  'type' => 'switch',
5778
- 'title' => __( 'Post Pagination', 'accelerated-mobile-pages' ),
5779
  'default' => 1,
5780
- 'tooltip-subtitle' => __('Enable the feature to add Pagination in single', 'accelerated-mobile-pages'),
5781
  ),
5782
  array(
5783
  'id' => 'ampforwp-pagination-select',
5784
  'class' => 'child_opt child_opt_arrow',
5785
  'type' => 'select',
5786
- 'title' => __('Post Pagination Type', 'accelerated-mobile-pages'),
5787
  'options' => array(
5788
  '1' => 'Numbering',
5789
  '2' => 'Next-Previous',
@@ -5794,7 +5726,7 @@ $single_page_options = array(
5794
  array(
5795
  'id' => 'ampforwp-single_section_3',
5796
  'type' => 'section',
5797
- 'title' => __('Related Post Settings', 'accelerated-mobile-pages'),
5798
  'indent' => true,
5799
  'layout_type' => 'accordion',
5800
  'accordion-open'=> 1,
@@ -5803,12 +5735,12 @@ $single_page_options = array(
5803
  array(
5804
  'id' => 'ampforwp-single-related-posts-switch',
5805
  'type' => 'switch',
5806
- 'title' => __( 'Related Posts', 'accelerated-mobile-pages' ),
5807
  'default' => 1,
5808
  ),
5809
  array(
5810
  'id' => 'rp_design_type',
5811
- 'title' => __('Related Post Designs', 'accelerated-mobile-pages'),
5812
  'class' => 'child_opt child_opt_arrow',
5813
  'type' => 'image_select',
5814
  'options'=> array(
@@ -5819,16 +5751,9 @@ $single_page_options = array(
5819
  '2' => array(
5820
  'alt'=>' Single Design With Sidebar ',
5821
  'img' =>AMPFORWP_PLUGIN_DIR_URI.'/images/rlp-2.png'
5822
- ),
5823
- // '3' => array(
5824
- // 'alt'=>' Single Design With Sidebar ',
5825
- // 'img' =>AMPFORWP_PLUGIN_DIR_URI.'/images/rlp-3.png'
5826
- // ),
5827
-
5828
  ),
5829
  'default'=> '1',
5830
- // 'max-width' => 200,
5831
- // 'max-height'=> 60,
5832
  'required' => array( array('amp-design-selector', '=' , '4'),
5833
  array('ampforwp-single-related-posts-switch', '=' , '1'),
5834
  array('single-design-type', '=' , '1')
@@ -5838,9 +5763,9 @@ $single_page_options = array(
5838
  'id' => 'ampforwp-single-select-type-of-related',
5839
  'type' => 'select',
5840
  'class' => 'child_opt child_opt_arrow',
5841
- 'title' => __('Related Post by', 'accelerated-mobile-pages'),
5842
  'data' => 'page',
5843
- 'tooltip-subtitle' => __('select the type of related posts', 'accelerated-mobile-pages'),
5844
  'options' => array(
5845
  '1' => 'Tags',
5846
  '2' => 'Categories',
@@ -5848,14 +5773,13 @@ $single_page_options = array(
5848
  'default' => '2',
5849
  'required' => array(
5850
  array('ampforwp-single-related-posts-switch', '=' , '1'),
5851
- // array('ampforwp-related-posts-yarpp-switch', '=' , '0')
5852
  ),
5853
  ),
5854
  array(
5855
  'id' => 'ampforwp-single-related-posts-image',
5856
  'type' => 'switch',
5857
  'class' => 'child_opt',
5858
- 'title' => __('Image', 'accelerated-mobile-pages'),
5859
  'default' => 1,
5860
  'required' => array(
5861
  array('ampforwp-single-related-posts-switch', '=' , '1')
@@ -5865,7 +5789,7 @@ $single_page_options = array(
5865
  'id' => 'ampforwp-single-related-posts-excerpt',
5866
  'type' => 'switch',
5867
  'class' => 'child_opt',
5868
- 'title' => __('Excerpt', 'accelerated-mobile-pages'),
5869
  'default' => 0,
5870
  'required' => array(
5871
  array('ampforwp-single-related-posts-switch', '=' , '1')
@@ -5875,7 +5799,7 @@ $single_page_options = array(
5875
  'id' => 'ampforwp-single-related-posts-link',
5876
  'type' => 'switch',
5877
  'class' => 'child_opt',
5878
- 'title' => __('Link to Non-AMP', 'accelerated-mobile-pages'),
5879
  'default' => 0,
5880
  'required' => array(
5881
  array('ampforwp-single-related-posts-switch', '=' , '1')
@@ -5885,60 +5809,56 @@ $single_page_options = array(
5885
  'id' => 'ampforwp-single-order-of-related-posts',
5886
  'type' => 'switch',
5887
  'class' => 'child_opt',
5888
- 'title' => __('Sort Related Posts Randomly', 'accelerated-mobile-pages'),
5889
  'default' => 0,
5890
  'required' => array(
5891
  array('ampforwp-single-related-posts-switch', '=' , '1'),
5892
- // array('ampforwp-related-posts-yarpp-switch', '=' , '1')
5893
  ),
5894
  ),
5895
  array(
5896
  'id' => 'ampforwp-number-of-related-posts',
5897
  'type' => 'text',
5898
  'class' => 'child_opt',
5899
- 'title' => __('Number of Related Post', 'accelerated-mobile-pages'),
5900
  'validate' => 'numeric',
5901
  'default' => '3',
5902
  'required' => array(
5903
  array('ampforwp-single-related-posts-switch', '=' , '1'),
5904
- // array('ampforwp-related-posts-yarpp-switch', '=' , '1')
5905
  ),
5906
  ),
5907
  array(
5908
  'id' => 'ampforwp-related-posts-days-switch',
5909
  'type' => 'switch',
5910
  'class' => 'child_opt',
5911
- 'title' => __('By Last X Days', 'accelerated-mobile-pages'),
5912
- 'tooltip-subtitle' => __('Show Related Posts From Past Few Days', 'accelerated-mobile-pages'),
5913
  'default' => 0,
5914
  'required' => array(
5915
  array('ampforwp-single-related-posts-switch', '=' , '1'),
5916
- // array('ampforwp-related-posts-yarpp-switch', '=' , '0')
5917
  ),
5918
  ),
5919
  array(
5920
  'id' => 'ampforwp-related-posts-days-text',
5921
  'type' => 'text',
5922
  'class' => 'child_opt',
5923
- 'title' => __('Number of Days', 'accelerated-mobile-pages'),
5924
  'validate' => 'numeric',
5925
  'default' => '7',
5926
  'required' => array(
5927
  array('ampforwp-related-posts-days-switch', '=' , '1'),
5928
- // array('ampforwp-related-posts-yarpp-switch', '=' , '0')
5929
  ),
5930
  ),
5931
  array(
5932
  'id' => 'ampforwp-inline-related-posts',
5933
  'type' => 'switch',
5934
- 'title' => __('In-Content Related Post', 'accelerated-mobile-pages'),
5935
- 'tooltip-subtitle' => __('Insert Related Posts between the content', 'accelerated-mobile-pages'),
5936
  'default' => 0,
5937
  ),
5938
  array(
5939
  'id' => 'ampforwp-inline-related-posts-type',
5940
  'type' => 'select',
5941
- 'title' => __('In-content Related Post by', 'accelerated-mobile-pages'),
5942
  'class' => 'child_opt child_opt_arrow',
5943
  'options' => array(
5944
  '1' => 'Tags',
@@ -5951,7 +5871,7 @@ $single_page_options = array(
5951
  'id' => 'ampforwp-inline-related-posts-order',
5952
  'type' => 'switch',
5953
  'class' => 'child_opt',
5954
- 'title' => __('Sort Related Posts Randomly', 'accelerated-mobile-pages'),
5955
  'default' => 0,
5956
  'required' => array( array('ampforwp-inline-related-posts', '=' , '1') ),
5957
  ),
@@ -5959,7 +5879,7 @@ $single_page_options = array(
5959
  'id' => 'ampforwp-number-of-inline-related-posts',
5960
  'type' => 'text',
5961
  'class' => 'child_opt',
5962
- 'title' => __('Display No. of Related Posts', 'accelerated-mobile-pages'),
5963
  'validate' => 'numeric',
5964
  'default' => '3',
5965
  'required' => array( array('ampforwp-inline-related-posts', '=' , '1') ),
@@ -5967,7 +5887,7 @@ $single_page_options = array(
5967
  array(
5968
  'id' => 'ampforwp-inline-related-posts-display-type',
5969
  'type' => 'select',
5970
- 'title' => __('Related Post Display', 'accelerated-mobile-pages'),
5971
  'class' => 'child_opt child_opt_arrow',
5972
  'options' => array(
5973
  'middle' => 'After 50% of Content',
@@ -5980,7 +5900,7 @@ $single_page_options = array(
5980
  'id' => 'ampforwp-related-posts-after-number-of-paragraphs',
5981
  'type' => 'text',
5982
  'class' => 'child_opt',
5983
- 'title' => __('Related Post After No. of Paragraphs', 'accelerated-mobile-pages'),
5984
  'validate' => 'numeric',
5985
  'default' => '3',
5986
  'required' => array( array('ampforwp-inline-related-posts', '=' , '1'),array('ampforwp-inline-related-posts-display-type', '=' , 'paragraphs') ),
@@ -5988,7 +5908,7 @@ $single_page_options = array(
5988
  array(
5989
  'id' => 'single-tab-2',
5990
  'type' => 'section',
5991
- 'title' => __('General', 'accelerated-mobile-pages'),
5992
  'indent' => true,
5993
  'layout_type' => 'accordion',
5994
  'accordion-open'=> 0,
@@ -5997,33 +5917,33 @@ $single_page_options = array(
5997
  array(
5998
  'id' => 'ampforwp-author-page-url',
5999
  'type' => 'switch',
6000
- 'title' => __( 'Link to Author Pages', 'accelerated-mobile-pages' ),
6001
  'default' => '0',
6002
  ),
6003
  array(
6004
  'id' => 'ampforwp-swift-recent-posts',
6005
  'type' => 'switch',
6006
- 'title' => __('Recent Posts', 'accelerated-mobile-pages'),
6007
- 'tooltip-subtitle' => __('To enable & disable recent posts', 'accelerated-mobile-pages'),
6008
  'default' => 1,
6009
  ),
6010
  array(
6011
  'id' => 'single-new-features',
6012
  'type' => 'switch',
6013
- 'title' => __('Advanced Single Options', 'accelerated-mobile-pages'),
6014
  'default' => 0,
6015
  ),
6016
  array(
6017
  'id' => 'breadcrumb-border',
6018
  'type' => 'switch',
6019
- 'title' => __('Breadcrumbs Border', 'accelerated-mobile-pages'),
6020
  'default' => 0,
6021
  'required' => array( array('single-new-features', '=' , '1'),array('amp-design-selector', '=' , '4') ),
6022
  ),
6023
  array(
6024
  'id' => 'ampforwp-underline-content-links',
6025
  'type' => 'switch',
6026
- 'title' => __('Underline on Links', 'accelerated-mobile-pages'),
6027
  'default' => 0,
6028
  'required' => array( array('single-new-features', '=' , '1') ),
6029
  ),
@@ -6031,15 +5951,15 @@ $single_page_options = array(
6031
  array(
6032
  'id' => 'swift_cnt',
6033
  'type' => 'switch',
6034
- 'title' => __( 'Heading Font Sizes', 'accelerated-mobile-pages' ),
6035
  'default' => 0,
6036
- 'tooltip-subtitle' => __('Enable the Heading to add Font Sizes in single', 'accelerated-mobile-pages'),
6037
  ),
6038
  array(
6039
  'id' => 'swift_cnt_h1',
6040
  'type' => 'switch',
6041
  'class' => 'child_opt',
6042
- 'title' => __('H1', 'accelerated-mobile-pages'),
6043
  'default' => 0,
6044
  'required' => array('swift_cnt' , '=' , '1'),
6045
  ),
@@ -6047,7 +5967,7 @@ $single_page_options = array(
6047
  'id' => 'swift_h1_sz',
6048
  'type' => 'text',
6049
  'class' => 'child_opt',
6050
- 'title' => __('H1 Font Size', 'accelerated-mobile-pages'),
6051
  'default' => '28px',
6052
  'required' => array('swift_cnt_h1' , '=' , '1'),
6053
  array('swift_cnt' , '=' , '1')
@@ -6056,7 +5976,7 @@ $single_page_options = array(
6056
  'id' => 'swift_cnt_h2',
6057
  'type' => 'switch',
6058
  'class' => 'child_opt',
6059
- 'title' => __('H2', 'accelerated-mobile-pages'),
6060
  'default' => 0,
6061
  'required' => array('swift_cnt' , '=' , '1'),
6062
  ),
@@ -6064,7 +5984,7 @@ $single_page_options = array(
6064
  'id' => 'swift_h2_sz',
6065
  'type' => 'text',
6066
  'class' => 'child_opt',
6067
- 'title' => __('H2 Font Size', 'accelerated-mobile-pages'),
6068
  'default' => '25px',
6069
  'required' => array('swift_cnt_h2' , '=' , '1'),
6070
  array('swift_cnt' , '=' , '1')
@@ -6073,7 +5993,7 @@ $single_page_options = array(
6073
  'id' => 'swift_cnt_h3',
6074
  'type' => 'switch',
6075
  'class' => 'child_opt',
6076
- 'title' => __('H3', 'accelerated-mobile-pages'),
6077
  'default' => 0,
6078
  'required' => array('swift_cnt' , '=' , '1'),
6079
  ),
@@ -6081,7 +6001,7 @@ $single_page_options = array(
6081
  'id' => 'swift_h3_sz',
6082
  'type' => 'text',
6083
  'class' => 'child_opt',
6084
- 'title' => __('H3 Font Size', 'accelerated-mobile-pages'),
6085
  'default' => '22px',
6086
  'required' => array('swift_cnt_h3' , '=' , '1'),
6087
  array('swift_cnt' , '=' , '1')
@@ -6090,7 +6010,7 @@ $single_page_options = array(
6090
  'id' => 'swift_cnt_h4',
6091
  'type' => 'switch',
6092
  'class' => 'child_opt',
6093
- 'title' => __('H4', 'accelerated-mobile-pages'),
6094
  'default' => 0,
6095
  'required' => array('swift_cnt' , '=' , '1'),
6096
  ),
@@ -6098,7 +6018,7 @@ $single_page_options = array(
6098
  'id' => 'swift_h4_sz',
6099
  'type' => 'text',
6100
  'class' => 'child_opt',
6101
- 'title' => __('H4 Font Size', 'accelerated-mobile-pages'),
6102
  'default' => '19px',
6103
  'required' => array('swift_cnt_h4' , '=' , '1'),
6104
  array('swift_cnt' , '=' , '1')
@@ -6107,7 +6027,7 @@ $single_page_options = array(
6107
  'id' => 'swift_cnt_h5',
6108
  'type' => 'switch',
6109
  'class' => 'child_opt',
6110
- 'title' => __('H5', 'accelerated-mobile-pages'),
6111
  'default' => 0,
6112
  'required' => array('swift_cnt' , '=' , '1'),
6113
  ),
@@ -6115,7 +6035,7 @@ $single_page_options = array(
6115
  'id' => 'swift_h5_sz',
6116
  'type' => 'text',
6117
  'class' => 'child_opt',
6118
- 'title' => __('H5 Font Size', 'accelerated-mobile-pages'),
6119
  'default' => '17px',
6120
  'required' => array('swift_cnt_h5' , '=' , '1'),
6121
  array('swift_cnt' , '=' , '1')
@@ -6124,7 +6044,7 @@ $single_page_options = array(
6124
  'id' => 'swift_cnt_h6',
6125
  'type' => 'switch',
6126
  'class' => 'child_opt',
6127
- 'title' => __('H6', 'accelerated-mobile-pages'),
6128
  'default' => 0,
6129
  'required' => array('swift_cnt' , '=' , '1'),
6130
  ),
@@ -6132,7 +6052,7 @@ $single_page_options = array(
6132
  'id' => 'swift_h6_sz',
6133
  'type' => 'text',
6134
  'class' => 'child_opt',
6135
- 'title' => __('H6 Font Size', 'accelerated-mobile-pages'),
6136
  'default' => '15px',
6137
  'required' => array('swift_cnt_h6' , '=' , '1'),
6138
  array('swift_cnt' , '=' , '1')
@@ -6140,14 +6060,14 @@ $single_page_options = array(
6140
  array(
6141
  'id' => 'ampforwp-single_section_5',
6142
  'type' => 'section',
6143
- 'title' => __('WordPress Content Gallery', 'accelerated-mobile-pages'),
6144
  'indent' => true,
6145
  'layout_type' => 'accordion',
6146
  'accordion-open'=> 1,
6147
  ),
6148
  array(
6149
  'id' => 'ampforwp-gallery-design-type',
6150
- 'title' => __('Select Gallery Designs', 'accelerated-mobile-pages'),
6151
  'class' => 'child_opt child_opt_arrow',
6152
  'type' => 'image_select',
6153
  'options'=> array(
@@ -6166,8 +6086,6 @@ $single_page_options = array(
6166
 
6167
  ),
6168
  'default'=> '1',
6169
- // 'max-width' => 200,
6170
- // 'max-height'=> 60,
6171
  'required' => array( array('amp-design-selector', '=' , '4'),
6172
 
6173
  ),
@@ -6175,7 +6093,7 @@ $single_page_options = array(
6175
  array(
6176
  'id' => 'single-sneakp-section',
6177
  'type' => 'section',
6178
- 'title' => __('Content Sneak Peek', 'accelerated-mobile-pages'),
6179
  'indent' => true,
6180
  'layout_type' => 'accordion',
6181
  'accordion-open'=> 1,
@@ -6183,15 +6101,14 @@ $single_page_options = array(
6183
  array(
6184
  'id' => 'content-sneak-peek',
6185
  'type' => 'switch',
6186
- //'class' => 'child_opt',
6187
- 'title' => __('Content Sneak Peek', 'accelerated-mobile-pages'),
6188
  'default' => 0,
6189
  ),
6190
  array(
6191
  'id' => 'content-sneak-peek-height',
6192
  'type' => 'text',
6193
  'class' => 'child_opt',
6194
- 'title' => __('Content Height', 'accelerated-mobile-pages'),
6195
  'default' => '600px',
6196
  'required' => array('content-sneak-peek' , '=' , '1'),
6197
  ),
@@ -6199,14 +6116,14 @@ $single_page_options = array(
6199
  'id' => 'content-sneak-peek-btn-text',
6200
  'type' => 'text',
6201
  'class' => 'child_opt',
6202
- 'title' => __('Button Text', 'accelerated-mobile-pages'),
6203
  'default' => 'Show Full Article',
6204
  'required' => array('content-sneak-peek' , '=' , '1'),
6205
  ),
6206
  array(
6207
  'id' => 'content-sneak-peek-txt-color',
6208
- 'title' => __('Text Color', 'accelerated-mobile-pages'),
6209
- 'tooltip-subtitle' => __('Choose the color for button\'s text','accelerated-mobile-pages'),
6210
  'type' => 'color_rgba',
6211
  'class' => 'child_opt',
6212
  'default' => array(
@@ -6218,8 +6135,8 @@ $single_page_options = array(
6218
  ),
6219
  array(
6220
  'id' => 'content-sneak-peek-btn-color',
6221
- 'title' => __('Button Color', 'accelerated-mobile-pages'),
6222
- 'tooltip-subtitle' => __('Choose the color for button','accelerated-mobile-pages'),
6223
  'type' => 'color_rgba',
6224
  'class' => 'child_opt',
6225
  'default' => array(
@@ -6229,17 +6146,6 @@ $single_page_options = array(
6229
  array('content-sneak-peek', '=' , '1')
6230
  )
6231
  ),
6232
-
6233
- // array(
6234
- // 'id' => 'ampforwp-comments-banner',
6235
- // 'type' => 'select',
6236
- // 'desc' => $comment_desc,
6237
- // 'title' => __(' df', 'accelerated-mobile-pages'),
6238
- // 'class' => 'new-class',
6239
- //
6240
- // // 'desc' => ' <br /><a href="' . esc_url(admin_url('customize.php?autofocus[section]=amp_design&customize_amp=1')) .'" target="_blank"><img class="ampforwp-post-builder-img" src="'.AMPFORWP_IMAGE_DIR . '/amp-post-builder.png" width="489" height="72" /></a>',
6241
- // ),
6242
- //
6243
  $fields = array(
6244
  'id' => 'info_normal',
6245
  'type' => 'info',
@@ -6247,64 +6153,9 @@ $single_page_options = array(
6247
  'desc' => $single_extension_listing
6248
  )
6249
  );
6250
- /*Yarpp enable option
6251
- if( is_plugin_active( 'yet-another-related-posts-plugin/yarpp.php' )){
6252
- $yarpp_options = array(array(
6253
- 'id' => 'ampforwp-related-posts-yarpp-switch',
6254
- 'type' => 'switch',
6255
- 'class' => 'child_opt',
6256
- 'title' => __('YARPP Compatibility', 'accelerated-mobile-pages'),
6257
- 'tooltip-subtitle' => __('Related post options can be used from the YARPP Plugin', 'accelerated-mobile-pages'),
6258
- 'default' => 0,
6259
- 'required' => array(
6260
- array('ampforwp-single-related-posts-switch', '=' , '1')
6261
- ),
6262
- ));
6263
- array_splice($single_page_options, 23, 0, $yarpp_options);
6264
- }else{
6265
- foreach ($single_page_options as $key => $optionArray) {
6266
- if(isset($optionArray['id']) && $optionArray['id']=='ampforwp-number-of-related-posts'){
6267
- $requiredValues = $optionArray['required'];
6268
- foreach ($requiredValues as $reqkey => $reqValue) {
6269
- if($reqValue[0]=='ampforwp-related-posts-yarpp-switch'){
6270
- unset($single_page_options[$key]['required'][$reqkey]);
6271
- }
6272
- }
6273
- }elseif(isset($optionArray['id']) && $optionArray['id']=='ampforwp-single-select-type-of-related'){
6274
- $requiredValues = $optionArray['required'];
6275
- foreach ($requiredValues as $reqkey => $reqValue) {
6276
- if($reqValue[0]=='ampforwp-related-posts-yarpp-switch'){
6277
- unset($single_page_options[$key]['required'][$reqkey]);
6278
- }
6279
- }
6280
- }elseif(isset($optionArray['id']) && $optionArray['id']=='ampforwp-related-posts-days-switch'){
6281
- $requiredValues = $optionArray['required'];
6282
- foreach ($requiredValues as $reqkey => $reqValue) {
6283
- if($reqValue[0]=='ampforwp-related-posts-yarpp-switch'){
6284
- unset($single_page_options[$key]['required'][$reqkey]);
6285
- }
6286
- }
6287
- }elseif(isset($optionArray['id']) && $optionArray['id']=='ampforwp-related-posts-days-text'){
6288
- $requiredValues = $optionArray['required'];
6289
- foreach ($requiredValues as $reqkey => $reqValue) {
6290
- if($reqValue[0]=='ampforwp-related-posts-yarpp-switch'){
6291
- unset($single_page_options[$key]['required'][$reqkey]);
6292
- }
6293
- }
6294
- }elseif(isset($optionArray['id']) && $optionArray['id']=='ampforwp-single-order-of-related-posts'){
6295
- $requiredValues = $optionArray['required'];
6296
- foreach ($requiredValues as $reqkey => $reqValue) {
6297
- if($reqValue[0]=='ampforwp-related-posts-yarpp-switch'){
6298
- unset($single_page_options[$key]['required'][$reqkey]);
6299
- }
6300
- }
6301
- }
6302
- }
6303
- }*/
6304
  // Single Section
6305
  Redux::setSection( $opt_name, array(
6306
- 'title' => __( 'Single', 'accelerated-mobile-pages' ),
6307
- // 'desc' => __( 'Additional Options to control the look of Single <a href="' . esc_url(admin_url('customize.php?autofocus[section]=amp_design&customize_amp=1')) .'"> Click here </a> ', 'accelerated-mobile-pages' ),
6308
  'id' => 'amp-single',
6309
  'subsection' => true,
6310
  'fields' => $single_page_options
@@ -6313,14 +6164,14 @@ $single_page_options = array(
6313
 
6314
  // Footer Section
6315
  Redux::setSection( $opt_name, array(
6316
- 'title' => __( 'Footer', 'accelerated-mobile-pages' ),
6317
  'id' => 'amp-theme-footer-settings',
6318
  'subsection' => true,
6319
  'fields' => array(
6320
  array(
6321
  'id' => 'footer-tab-1',
6322
  'type' => 'section',
6323
- 'title' => __('Footer Design', 'accelerated-mobile-pages'),
6324
  'indent' => true,
6325
  'layout_type' => 'accordion',
6326
  'accordion-open'=> 1,
@@ -6328,7 +6179,7 @@ $single_page_options = array(
6328
  // Swift
6329
  array(
6330
  'id' => 'footer-type',
6331
- 'title' => __('Footer Type', 'accelerated-mobile-pages'),
6332
  'type' => 'image_select',
6333
  'options'=> array(
6334
  '1' => array(
@@ -6337,14 +6188,12 @@ $single_page_options = array(
6337
  ),
6338
  ),
6339
  'default'=> '1',
6340
- // 'max-width' => 200,
6341
- // 'max-height'=> 60,
6342
  'required' => array( array('amp-design-selector', '=' , '4') ),
6343
  ),
6344
  array(
6345
  'id' => 'footer-tab-3',
6346
  'type' => 'section',
6347
- 'title' => __('General', 'accelerated-mobile-pages'),
6348
  'indent' => true,
6349
  'layout_type' => 'accordion',
6350
  'accordion-open'=> 1,
@@ -6353,15 +6202,15 @@ $single_page_options = array(
6353
  array(
6354
  'id' => 'swift-menu',
6355
  'type' => 'switch',
6356
- 'title' => __('Menu', 'accelerated-mobile-pages'),
6357
  'default' => 1,
6358
  'required' => array( array('amp-design-selector', '=' , '4') ),
6359
- 'tooltip-subtitle' => __( 'Add Menus to your AMP pages by clicking on this <a href="'.trailingslashit(get_admin_url()).'nav-menus.php?action=locations">link</a>' , 'accelerated-mobile-pages'),
6360
  ),
6361
  array(
6362
  'id' => 'amp-footer-link-non-amp-page',
6363
  'type' => 'switch',
6364
- 'title' => __('Link to Non-AMP page in Footer', 'accelerated-mobile-pages'),
6365
  'true' => 'true',
6366
  'false' => 'false',
6367
  'default' => 1
@@ -6370,7 +6219,7 @@ $single_page_options = array(
6370
  array(
6371
  'id' => 'ampforwp-footer-top',
6372
  'type' => 'switch',
6373
- 'title' => __('Back to Top link', 'accelerated-mobile-pages'),
6374
  'true' => 'true',
6375
  'false' => 'false',
6376
  'default' => 1,
@@ -6381,8 +6230,8 @@ $single_page_options = array(
6381
  array(
6382
  'id' => 'ampforwp-footer-top-design3',
6383
  'type' => 'switch',
6384
- 'title' => __('Back to Top link', 'accelerated-mobile-pages'),
6385
- 'tooltip-subtitle' => __('Enable / Disable Link to top of the page in the footer', 'accelerated-mobile-pages'),
6386
  'true' => 'true',
6387
  'false' => 'false',
6388
  'default' => 0,
@@ -6392,7 +6241,7 @@ $single_page_options = array(
6392
  array(
6393
  'id' => 'amp-design-3-credit-link',
6394
  'type' => 'switch',
6395
- 'title' => __( 'Credit link', 'accelerated-mobile-pages' ),
6396
  'required' => array(
6397
  array('amp-design-selector', '=' , '3')
6398
  ),
@@ -6401,16 +6250,14 @@ $single_page_options = array(
6401
  array(
6402
  'id' => 'ampforwp-nofollow-view-nonamp',
6403
  'type' => 'switch',
6404
- 'title' => __('Make "View Non-AMP" link nofollow', 'accelerated-mobile-pages'),
6405
  'default' => 0
6406
  ),
6407
  array(
6408
  'id' => 'footer-tab-2',
6409
  'type' => 'section',
6410
- 'title' => __('Advanced Footer Options', 'accelerated-mobile-pages'),
6411
  'indent' => true,
6412
- //'start' => true,
6413
- //'label' => 'Tab 2',
6414
  'required' => array(
6415
  array('amp-design-selector', '=' , '4')
6416
  ),
@@ -6420,13 +6267,13 @@ $single_page_options = array(
6420
  array(
6421
  'id' => 'footer-customize-options',
6422
  'type' => 'switch',
6423
- 'title' => __('Advanced Footer Design', 'accelerated-mobile-pages'),
6424
  'default' => 0,
6425
  'required' => array( array('amp-design-selector', '=' , '4') ),
6426
  ),
6427
  array(
6428
  'id' => 'swift-footer-txt-clr',
6429
- 'title' => __('Footer Text Color', 'accelerated-mobile-pages'),
6430
  'type' => 'color_rgba',
6431
  'default' => array(
6432
  'color' => '#888888',
@@ -6437,7 +6284,7 @@ $single_page_options = array(
6437
  ),
6438
  array(
6439
  'id' => 'swift-footer-link-clr',
6440
- 'title' => __('Footer Link Color', 'accelerated-mobile-pages'),
6441
  'type' => 'color_rgba',
6442
  'default' => array(
6443
  'color' => '#fcc118',
@@ -6448,7 +6295,7 @@ $single_page_options = array(
6448
  ),
6449
  array(
6450
  'id' => 'swift-footer-link-hvr',
6451
- 'title' => __('Footer Link Hover Color', 'accelerated-mobile-pages'),
6452
  'type' => 'color_rgba',
6453
  'default' => array(
6454
  'color' => '#888888',
@@ -6459,7 +6306,7 @@ $single_page_options = array(
6459
  ),
6460
  array(
6461
  'id' => 'swift-footer-bg',
6462
- 'title' => __('Footer 1 Background', 'accelerated-mobile-pages'),
6463
  'type' => 'color_rgba',
6464
  'default' => array(
6465
  'color' => '#182733',
@@ -6471,7 +6318,7 @@ $single_page_options = array(
6471
  array(
6472
  'id' =>"ftr1-gapping",
6473
  'type' =>'spacing',
6474
- 'title' => __('Footer 1 Gapping', 'accelerated-mobile-pages'),
6475
  'units' => array('px','%'),
6476
  'default' =>array(
6477
  'padding-top' => '70px',
@@ -6487,7 +6334,7 @@ $single_page_options = array(
6487
  array(
6488
  'id' => 'swift-footer1-cntnsize',
6489
  'type' => 'text',
6490
- 'title' => __('Footer 1 Font Size', 'accelerated-mobile-pages'),
6491
  'default' => '14px',
6492
  'required' => array(
6493
  array('footer-customize-options','=',1)
@@ -6496,7 +6343,7 @@ $single_page_options = array(
6496
  array(
6497
  'id' => 'swift-head-size',
6498
  'type' => 'text',
6499
- 'title' => __('Footer 1 Heading Font Size', 'accelerated-mobile-pages'),
6500
  'default' => '12px',
6501
  'required' => array(
6502
  array('footer-customize-options','=',1)
@@ -6505,7 +6352,7 @@ $single_page_options = array(
6505
  array(
6506
  'id' => 'swift-head-fntwgth',
6507
  'type' => 'text',
6508
- 'title' => __('Footer 1 Heading Font Weight', 'accelerated-mobile-pages'),
6509
  'default' => '500',
6510
  'required' => array(
6511
  array('footer-customize-options','=',1)
@@ -6513,7 +6360,7 @@ $single_page_options = array(
6513
  ),
6514
  array(
6515
  'id' => 'swift-footer-heading-clr',
6516
- 'title' => __('Footer 1 Heading Color', 'accelerated-mobile-pages'),
6517
  'type' => 'color_rgba',
6518
  'default' => array(
6519
  'color' => '#999',
@@ -6524,7 +6371,7 @@ $single_page_options = array(
6524
  ),
6525
  array(
6526
  'id' => 'swift-footer2-bg',
6527
- 'title' => __('Footer 2 Background', 'accelerated-mobile-pages'),
6528
  'type' => 'color_rgba',
6529
  'default' => array(
6530
  'color' => '#2e2b2e',
@@ -6536,7 +6383,7 @@ $single_page_options = array(
6536
  array(
6537
  'id' =>"ftr2-gapping",
6538
  'type' =>'spacing',
6539
- 'title' => __('Footer 2 Gapping', 'accelerated-mobile-pages'),
6540
  'units' => array('px','%'),
6541
  'default' =>array(
6542
  'padding-top' => '50px',
@@ -6552,7 +6399,7 @@ $single_page_options = array(
6552
  array(
6553
  'id' => 'swift-footer2-fntsize',
6554
  'type' => 'text',
6555
- 'title' => __('Footer 2 Font Size', 'accelerated-mobile-pages'),
6556
  'default' => '12px',
6557
  'required' => array(
6558
  array('footer-customize-options','=',1)
@@ -6560,7 +6407,7 @@ $single_page_options = array(
6560
  ),
6561
  array(
6562
  'id' => 'swift-footer-brdrclr',
6563
- 'title' => __('Footer 2 Border Color', 'accelerated-mobile-pages'),
6564
  'type' => 'color_rgba',
6565
  'default' => array(
6566
  'color' => '#eee',
@@ -6571,7 +6418,7 @@ $single_page_options = array(
6571
  ),
6572
  array(
6573
  'id' => 'footer2-position-type',
6574
- 'title' => __('Footer 2 Menu Position', 'accelerated-mobile-pages'),
6575
  'type' => 'select',
6576
  'options'=> array(
6577
  '1' => 'Center',
@@ -6588,21 +6435,14 @@ $single_page_options = array(
6588
 
6589
  // Page Section
6590
  Redux::setSection( $opt_name, array(
6591
- 'title' => __( 'Page', 'accelerated-mobile-pages' ),
6592
  'id' => 'amp-theme-page-settings',
6593
  'subsection' => true,
6594
  'fields' => array(
6595
- /* // Pages Separator
6596
- array(
6597
- 'id' => 'Page',
6598
- 'type' => 'section',
6599
- 'title' => __('Pages', 'accelerated-mobile-pages'),
6600
- 'indent' => true,
6601
- ),*/
6602
  array(
6603
  'id' => 'page-tab-1',
6604
  'type' => 'section',
6605
- 'title' => __('General', 'accelerated-mobile-pages'),
6606
  'indent' => true,
6607
  'layout_type' => 'accordion',
6608
  'accordion-open'=> 1,
@@ -6613,54 +6453,52 @@ $single_page_options = array(
6613
  'id' => 'featured_image_swift_page',
6614
  'type' => 'switch',
6615
  'default' => '0',
6616
- 'title' => __('Featured Image', 'accelerated-mobile-pages'),
6617
- 'tooltip-subtitle' => __('Enable Featured Image on Pages.'),
6618
  'required' => array('amp-design-selector','=','4'),
6619
  ),
6620
  array(
6621
  'id' => 'meta_page',
6622
  'type' => 'switch',
6623
  'default' => '0',
6624
- 'title' => __('Meta Information', 'accelerated-mobile-pages'),
6625
  ),
6626
  array(
6627
  'id' => 'ampforwp_subpages_list',
6628
  'type' => 'switch',
6629
  'default' => '0',
6630
- 'title' => __('Subpages/ChildPages', 'accelerated-mobile-pages'),
6631
- 'tooltip-subtitle' => __('Shows a List of Subpages'),
6632
  ),
6633
  array(
6634
  'id' => 'ampforwp-page-social',
6635
  'type' => 'switch',
6636
  'default' => '0',
6637
- 'title' => __('Social Icons', 'accelerated-mobile-pages'),
6638
- 'tooltip-subtitle' => __('Enable Social Sharing on Pages'),
6639
  ),
6640
  array(
6641
  'id' => 'ampforwp-page-sticky-social',
6642
  'type' => 'switch',
6643
  'default' => '0',
6644
- 'title' => __('Sticky Social Icons', 'accelerated-mobile-pages'),
6645
- 'tooltip-subtitle' => __('Enable Social Sticky Icons on Pages'),
6646
  ),
6647
  )
6648
  ));
6649
 
6650
  // Social Section
6651
  Redux::setSection( $opt_name, array(
6652
- 'title' => __( 'Social', 'accelerated-mobile-pages' ),
6653
  'id' => 'amp-social',
6654
- 'desc' => __('All the Social sharing and the social profile related settings are here','accelerated-mobile-pages'),
6655
  'subsection' => true,
6656
  'fields' => array(
6657
  array(
6658
  'id' => 'social-shre',
6659
  'type' => 'section',
6660
- 'title' => __('Social Sharing', 'accelerated-mobile-pages'),
6661
  'indent' => true,
6662
- //'start' => true,
6663
- //'label' => 'Tab 2',
6664
  'layout_type' => 'accordion',
6665
  'accordion-open'=> 1,
6666
  ),
@@ -6668,7 +6506,7 @@ $single_page_options = array(
6668
  array(
6669
  'id' => 'swift-social-position',
6670
  'type' => 'select',
6671
- 'title' => __( 'Position', 'accelerated-mobile-pages' ),
6672
  'options' => array(
6673
  'default' => 'Single Sidebar (left side)',
6674
  'above-content' => 'Above Content',
@@ -6681,14 +6519,14 @@ $single_page_options = array(
6681
  array(
6682
  'id' => 'ampforwp-social-share-amp',
6683
  'type' => 'switch',
6684
- 'title' => __('Social Share links to AMP', 'accelerated-mobile-pages'),
6685
  'default' => 0,
6686
  ),
6687
  // Facebook Like
6688
  array(
6689
  'id' => 'ampforwp-facebook-like-button',
6690
  'type' => 'switch',
6691
- 'title' => __('Facebook Like Button', 'accelerated-mobile-pages'),
6692
  'default' => 0,
6693
  ),
6694
  // Facebook ON/OFF
@@ -6696,17 +6534,17 @@ $single_page_options = array(
6696
  'id' => 'enable-single-facebook-share',
6697
  'type' => 'switch',
6698
  //'required' => array('enable-single-social-icons', '=' , '1'),
6699
- 'title' => __('Facebook', 'accelerated-mobile-pages'),
6700
  'default' => 0,
6701
  ),
6702
  // Facebook app ID
6703
  array(
6704
  'id' => 'amp-facebook-app-id',
6705
- 'title' => __('Facebook App ID', 'accelerated-mobile-pages'),
6706
- 'tooltip-subtitle' => __('In order to use Facebook share you need to register an app ID, <a href="https://developers.facebook.com/apps" target="_blank" style="color:#93FCFF;" >You can register one here: https://developers.facebook.com/apps.', 'accelerated-mobile-pages'),
6707
  'type' => 'text',
6708
  'required' => array('enable-single-facebook-share', '=' , '1'),
6709
- 'placeholder' => __('Enter your facebook app id','accelerated-mobile-pages'),
6710
  'default' => '',
6711
  'required' => array(
6712
  array('amp-design-selector', '!=' , '4')
@@ -6716,22 +6554,22 @@ $single_page_options = array(
6716
  array(
6717
  'id' => 'enable-single-twitter-share',
6718
  'type' => 'switch',
6719
- 'title' => __('Twitter', 'accelerated-mobile-pages'),
6720
  'default' => 1,
6721
  ),
6722
  array(
6723
  'id' => 'enable-single-twitter-share-handle',
6724
  'type' => 'text',
6725
- 'title' => __('Twitter Handle', 'accelerated-mobile-pages'),
6726
  'required' => array('enable-single-twitter-share', '=' , '1'),
6727
- 'placeholder' => __('Eg: @xyx','accelerated-mobile-pages'),
6728
  'default' => '',
6729
  ),
6730
  array(
6731
  'id' => 'enable-single-twitter-share-link',
6732
  'type' => 'switch',
6733
- 'title' => __('Pretty Permalinks for Twitter Share?', 'accelerated-mobile-pages'),
6734
- 'tooltip-subtitle' => __('Enable this to have pretty links for twitter sharing'),
6735
  'default' => 0,
6736
  'required' => array('enable-single-twitter-share', '=' , '1'),
6737
  ),
@@ -6739,126 +6577,126 @@ $single_page_options = array(
6739
  array(
6740
  'id' => 'enable-single-gplus-share',
6741
  'type' => 'switch',
6742
- 'title' => __('GooglePlus', 'accelerated-mobile-pages'),
6743
  'default' => 1,
6744
  ),
6745
  // Email ON/OFF
6746
  array(
6747
  'id' => 'enable-single-email-share',
6748
  'type' => 'switch',
6749
- 'title' => __('Email', 'accelerated-mobile-pages'),
6750
  'default' => 1,
6751
  ),
6752
  // Pinterest ON/OFF
6753
  array(
6754
  'id' => 'enable-single-pinterest-share',
6755
  'type' => 'switch',
6756
- 'title' => __('Pinterest', 'accelerated-mobile-pages'),
6757
  'default' => 1,
6758
  ),
6759
  // LinkedIn ON/OFF
6760
  array(
6761
  'id' => 'enable-single-linkedin-share',
6762
  'type' => 'switch',
6763
- 'title' => __('LinkedIn', 'accelerated-mobile-pages'),
6764
  'default' => 1,
6765
  ),
6766
  // WhatsApp
6767
  array(
6768
  'id' => 'enable-single-whatsapp-share',
6769
  'type' => 'switch',
6770
- 'title' => __('WhatsApp', 'accelerated-mobile-pages'),
6771
  'default' => 1,
6772
  ),
6773
  // LINE
6774
  array(
6775
  'id' => 'enable-single-line-share',
6776
  'type' => 'switch',
6777
- 'title' => __('Line', 'accelerated-mobile-pages'),
6778
  'default' => 1,
6779
  ),
6780
  // VKontakte
6781
  array(
6782
  'id' => 'enable-single-vk-share',
6783
  'type' => 'switch',
6784
- 'title' => __('VKontakte', 'accelerated-mobile-pages'),
6785
  'default' => 0,
6786
  ),
6787
  // Odnoklassniki
6788
  array(
6789
  'id' => 'enable-single-odnoklassniki-share',
6790
  'type' => 'switch',
6791
- 'title' => __('Odnoklassniki', 'accelerated-mobile-pages'),
6792
  'default' => 0,
6793
  ),
6794
  // Reddit
6795
  array(
6796
  'id' => 'enable-single-reddit-share',
6797
  'type' => 'switch',
6798
- 'title' => __('Reddit', 'accelerated-mobile-pages'),
6799
  'default' => 0,
6800
  ),
6801
  // Tumblr
6802
  array(
6803
  'id' => 'enable-single-tumblr-share',
6804
  'type' => 'switch',
6805
- 'title' => __('Tumblr', 'accelerated-mobile-pages'),
6806
  'default' => 0,
6807
  ),
6808
  // Telegram
6809
  array(
6810
  'id' => 'enable-single-telegram-share',
6811
  'type' => 'switch',
6812
- 'title' => __('Telegram', 'accelerated-mobile-pages'),
6813
  'default' => 0,
6814
  ),
6815
  // Digg
6816
  array(
6817
  'id' => 'enable-single-digg-share',
6818
  'type' => 'switch',
6819
- 'title' => __('Digg', 'accelerated-mobile-pages'),
6820
  'default' => 0,
6821
  ),
6822
  // StumbleUpon
6823
  array(
6824
  'id' => 'enable-single-stumbleupon-share',
6825
  'type' => 'switch',
6826
- 'title' => __('StumbleUpon', 'accelerated-mobile-pages'),
6827
  'default' => 0,
6828
  ),
6829
  // Wechat
6830
  array(
6831
  'id' => 'enable-single-wechat-share',
6832
  'type' => 'switch',
6833
- 'title' => __('Wechat', 'accelerated-mobile-pages'),
6834
  'default' => 0,
6835
  ),
6836
  // Viber
6837
  array(
6838
  'id' => 'enable-single-viber-share',
6839
  'type' => 'switch',
6840
- 'title' => __('Viber', 'accelerated-mobile-pages'),
6841
  'default' => 0,
6842
  ),
6843
  // Hatena BookMark
6844
  array(
6845
  'id' => 'enable-single-hatena-bookmarks',
6846
  'type' => 'switch',
6847
- 'title' => __('Hatena Bookmarks', 'accelerated-mobile-pages'),
6848
  'default' => 0,
6849
  ),
6850
  // Pocket
6851
  array(
6852
  'id' => 'enable-single-pocket-share',
6853
  'type' => 'switch',
6854
- 'title' => __('Pocket', 'accelerated-mobile-pages'),
6855
  'default' => 0,
6856
  ),
6857
  // Yummly
6858
  array(
6859
  'id' => 'enable-single-yummly-share',
6860
  'type' => 'switch',
6861
- 'title' => __('Yummly', 'accelerated-mobile-pages'),
6862
  'default' => 0,
6863
  'required' => array(
6864
  array('amp-design-selector', '=' , '4')
@@ -6867,10 +6705,8 @@ $single_page_options = array(
6867
  array(
6868
  'id' => 'social-prfl',
6869
  'type' => 'section',
6870
- 'title' => __('Social Media Profile Links', 'accelerated-mobile-pages'),
6871
  'indent' => true,
6872
- //'start' => true,
6873
- //'label' => 'Tab 2',
6874
  'required' => array(
6875
  array('amp-design-selector', '=' , '4')
6876
  ),
@@ -6880,7 +6716,7 @@ $single_page_options = array(
6880
  array(
6881
  'id' => 'menu-social',
6882
  'type' => 'switch',
6883
- 'title' => __('Menu Social Profile', 'accelerated-mobile-pages'),
6884
  'default' => 0,
6885
  'required' => array(
6886
  array('amp-design-selector', '=' , '4')
@@ -6889,7 +6725,7 @@ $single_page_options = array(
6889
  array(
6890
  'id' => 'enbl-fb',
6891
  'type' => 'switch',
6892
- 'title' => __('Facebook', 'accelerated-mobile-pages'),
6893
  'default' => 1,
6894
  'required' => array(
6895
  array('menu-social', '=' ,1)
@@ -6898,7 +6734,7 @@ $single_page_options = array(
6898
  array(
6899
  'id' => 'enbl-fb-prfl-url',
6900
  'type' => 'text',
6901
- 'title' => __('Facebook URL', 'accelerated-mobile-pages'),
6902
  'default' => '#',
6903
  'required' => array(
6904
  array('enbl-fb','=',1)
@@ -6907,7 +6743,7 @@ $single_page_options = array(
6907
  array(
6908
  'id' => 'enbl-tw',
6909
  'type' => 'switch',
6910
- 'title' => __('Twitter', 'accelerated-mobile-pages'),
6911
  'default' => 1,
6912
  'required' => array(
6913
  array('menu-social','=',1)
@@ -6916,7 +6752,7 @@ $single_page_options = array(
6916
  array(
6917
  'id' => 'enbl-tw-prfl-url',
6918
  'type' => 'text',
6919
- 'title' => __('Twitter URL', 'accelerated-mobile-pages'),
6920
  'default' => '#',
6921
  'required' => array(
6922
  array('enbl-tw','=',1)
@@ -6925,7 +6761,7 @@ $single_page_options = array(
6925
  array(
6926
  'id' => 'enbl-gol',
6927
  'type' => 'switch',
6928
- 'title' => __('Google', 'accelerated-mobile-pages'),
6929
  'default' => 1,
6930
  'required' => array(
6931
  array('menu-social','=',1)
@@ -6934,7 +6770,7 @@ $single_page_options = array(
6934
  array(
6935
  'id' => 'enbl-gol-prfl-url',
6936
  'type' => 'text',
6937
- 'title' => __('Google URL', 'accelerated-mobile-pages'),
6938
  'default' => '#',
6939
  'required' => array(
6940
  array('enbl-gol','=',1)
@@ -6943,7 +6779,7 @@ $single_page_options = array(
6943
  array(
6944
  'id' => 'enbl-lk',
6945
  'type' => 'switch',
6946
- 'title' => __('Linkedin', 'accelerated-mobile-pages'),
6947
  'default' => 1,
6948
  'required' => array(
6949
  array('menu-social','=',1)
@@ -6952,7 +6788,7 @@ $single_page_options = array(
6952
  array(
6953
  'id' => 'enbl-lk-prfl-url',
6954
  'type' => 'text',
6955
- 'title' => __('Linkedin URL', 'accelerated-mobile-pages'),
6956
  'default' => '#',
6957
  'required' => array(
6958
  array('enbl-lk','=',1)
@@ -6961,7 +6797,7 @@ $single_page_options = array(
6961
  array(
6962
  'id' => 'enbl-pt',
6963
  'type' => 'switch',
6964
- 'title' => __('Pinterest', 'accelerated-mobile-pages'),
6965
  'default' => 0,
6966
  'required' => array(
6967
  array('menu-social','=',1)
@@ -6970,7 +6806,7 @@ $single_page_options = array(
6970
  array(
6971
  'id' => 'enbl-pt-prfl-url',
6972
  'type' => 'text',
6973
- 'title' => __('Pinterest URL', 'accelerated-mobile-pages'),
6974
  'default' => '#',
6975
  'required' => array(
6976
  array('enbl-pt','=',1)
@@ -6979,7 +6815,7 @@ $single_page_options = array(
6979
  array(
6980
  'id' => 'enbl-yt',
6981
  'type' => 'switch',
6982
- 'title' => __('Youtube', 'accelerated-mobile-pages'),
6983
  'default' => 0,
6984
  'required' => array(
6985
  array('menu-social','=',1)
@@ -6988,7 +6824,7 @@ $single_page_options = array(
6988
  array(
6989
  'id' => 'enbl-yt-prfl-url',
6990
  'type' => 'text',
6991
- 'title' => __('Youtube URL', 'accelerated-mobile-pages'),
6992
  'default' => '#',
6993
  'required' => array(
6994
  array('enbl-yt','=',1)
@@ -6997,7 +6833,7 @@ $single_page_options = array(
6997
  array(
6998
  'id' => 'enbl-inst',
6999
  'type' => 'switch',
7000
- 'title' => __('Instagram', 'accelerated-mobile-pages'),
7001
  'default' => 0,
7002
  'required' => array(
7003
  array('menu-social','=',1)
@@ -7006,7 +6842,7 @@ $single_page_options = array(
7006
  array(
7007
  'id' => 'enbl-inst-prfl-url',
7008
  'type' => 'text',
7009
- 'title' => __('Instagram URL', 'accelerated-mobile-pages'),
7010
  'default' => '#',
7011
  'required' => array(
7012
  array('enbl-inst','=',1)
@@ -7015,7 +6851,7 @@ $single_page_options = array(
7015
  array(
7016
  'id' => 'enbl-vk',
7017
  'type' => 'switch',
7018
- 'title' => __('VKontakte', 'accelerated-mobile-pages'),
7019
  'default' => 0,
7020
  'required' => array(
7021
  array('menu-social','=',1)
@@ -7024,7 +6860,7 @@ $single_page_options = array(
7024
  array(
7025
  'id' => 'enbl-vk-prfl-url',
7026
  'type' => 'text',
7027
- 'title' => __('VKontakte URL', 'accelerated-mobile-pages'),
7028
  'default' => '#',
7029
  'required' => array(
7030
  array('enbl-vk','=',1)
@@ -7033,7 +6869,7 @@ $single_page_options = array(
7033
  array(
7034
  'id' => 'enbl-rd',
7035
  'type' => 'switch',
7036
- 'title' => __('Reddit', 'accelerated-mobile-pages'),
7037
  'default' => 0,
7038
  'required' => array(
7039
  array('menu-social','=',1)
@@ -7042,7 +6878,7 @@ $single_page_options = array(
7042
  array(
7043
  'id' => 'enbl-rd-prfl-url',
7044
  'type' => 'text',
7045
- 'title' => __('Reddit URL', 'accelerated-mobile-pages'),
7046
  'default' => '#',
7047
  'required' => array(
7048
  array('enbl-rd','=',1)
@@ -7051,7 +6887,7 @@ $single_page_options = array(
7051
  array(
7052
  'id' => 'enbl-tbl',
7053
  'type' => 'switch',
7054
- 'title' => __('Tumblr', 'accelerated-mobile-pages'),
7055
  'default' => 0,
7056
  'required' => array(
7057
  array('menu-social','=',1)
@@ -7060,7 +6896,7 @@ $single_page_options = array(
7060
  array(
7061
  'id' => 'enbl-tbl-prfl-url',
7062
  'type' => 'text',
7063
- 'title' => __('Tumblr URL', 'accelerated-mobile-pages'),
7064
  'default' => '#',
7065
  'required' => array(
7066
  array('enbl-tbl','=',1)
@@ -7069,8 +6905,8 @@ $single_page_options = array(
7069
  array(
7070
  'id' => 'social-media-profiles-subsection',
7071
  'type' => 'section',
7072
- 'title' => __('Social Media Profiles (Design #3)', 'accelerated-mobile-pages'),
7073
- 'tooltip-subtitle' => __('Please enter your personal/organizational social media profiles here', 'accelerated-mobile-pages'),
7074
  'indent' => true,
7075
  'required' => array(
7076
  array('amp-design-selector', '=' , '3')
@@ -7082,7 +6918,7 @@ $single_page_options = array(
7082
  array(
7083
  'id' => 'enable-single-twittter-profile',
7084
  'type' => 'switch',
7085
- 'title' => __('Twitter ', 'accelerated-mobile-pages'),
7086
  'default' => 1,
7087
  'required' => array(
7088
  array('amp-design-selector', '=' , '3')
@@ -7091,7 +6927,7 @@ $single_page_options = array(
7091
  array(
7092
  'id' => 'enable-single-twittter-profile-url',
7093
  'type' => 'text',
7094
- 'title' => __('Twitter URL', 'accelerated-mobile-pages'),
7095
  'default' => '#',
7096
  'required' => array(
7097
  array('amp-design-selector', '=' , '3'),
@@ -7102,7 +6938,7 @@ $single_page_options = array(
7102
  array(
7103
  'id' => 'enable-single-facebook-profile',
7104
  'type' => 'switch',
7105
- 'title' => __('Facebook ', 'accelerated-mobile-pages'),
7106
  'default' => 1,
7107
  'required' => array(
7108
  array('amp-design-selector', '=' , '3')
@@ -7111,7 +6947,7 @@ $single_page_options = array(
7111
  array(
7112
  'id' => 'enable-single-facebook-profile-url',
7113
  'type' => 'text',
7114
- 'title' => __('Facebook URL', 'accelerated-mobile-pages'),
7115
  'default' => '#',
7116
  'required' => array(
7117
  array('amp-design-selector', '=' , '3'),
@@ -7122,7 +6958,7 @@ $single_page_options = array(
7122
  array(
7123
  'id' => 'enable-single-pintrest-profile',
7124
  'type' => 'switch',
7125
- 'title' => __('Pintrest ', 'accelerated-mobile-pages'),
7126
  'default' => 1,
7127
  'required' => array(
7128
  array('amp-design-selector', '=' , '3')
@@ -7131,7 +6967,7 @@ $single_page_options = array(
7131
  array(
7132
  'id' => 'enable-single-pintrest-profile-url',
7133
  'type' => 'text',
7134
- 'title' => __('Pintrest URL', 'accelerated-mobile-pages'),
7135
  'default' => '#',
7136
  'required' => array(
7137
  array('amp-design-selector', '=' , '3'),
@@ -7142,7 +6978,7 @@ $single_page_options = array(
7142
  array(
7143
  'id' => 'enable-single-google-plus-profile',
7144
  'type' => 'switch',
7145
- 'title' => __('Google Plus ', 'accelerated-mobile-pages'),
7146
  'default' => 0,
7147
  'required' => array(
7148
  array('amp-design-selector', '=' , '3')
@@ -7151,7 +6987,7 @@ $single_page_options = array(
7151
  array(
7152
  'id' => 'enable-single-google-plus-profile-url',
7153
  'type' => 'text',
7154
- 'title' => __('Google Plus URL', 'accelerated-mobile-pages'),
7155
  'default' => '',
7156
  'required' => array(
7157
  array('amp-design-selector', '=' , '3'),
@@ -7162,7 +6998,7 @@ $single_page_options = array(
7162
  array(
7163
  'id' => 'enable-single-linkdin-profile',
7164
  'type' => 'switch',
7165
- 'title' => __('LinkedIn', 'accelerated-mobile-pages'),
7166
  'default' => 0,
7167
  'required' => array(
7168
  array('amp-design-selector', '=' , '3')
@@ -7171,7 +7007,7 @@ $single_page_options = array(
7171
  array(
7172
  'id' => 'enable-single-linkdin-profile-url',
7173
  'type' => 'text',
7174
- 'title' => __('LinkedIn URL', 'accelerated-mobile-pages'),
7175
  'default' => '',
7176
  'required' => array(
7177
  array('amp-design-selector', '=' , '3'),
@@ -7182,7 +7018,7 @@ $single_page_options = array(
7182
  array(
7183
  'id' => 'enable-single-youtube-profile',
7184
  'type' => 'switch',
7185
- 'title' => __('Youtube ', 'accelerated-mobile-pages'),
7186
  'default' => 1,
7187
  'required' => array(
7188
  array('amp-design-selector', '=' , '3')
@@ -7192,7 +7028,7 @@ $single_page_options = array(
7192
  'id' => 'enable-single-youtube-profile-url',
7193
  'type' => 'text',
7194
  'default' => '#',
7195
- 'title' => __('Youtube URL', 'accelerated-mobile-pages'),
7196
  'required' => array(
7197
  array('amp-design-selector', '=' , '3'),
7198
  array('enable-single-youtube-profile', '=' , '1')
@@ -7202,7 +7038,7 @@ $single_page_options = array(
7202
  array(
7203
  'id' => 'enable-single-instagram-profile',
7204
  'type' => 'switch',
7205
- 'title' => __('Instagram ', 'accelerated-mobile-pages'),
7206
  'default' => 0,
7207
  'required' => array(
7208
  array('amp-design-selector', '=' , '3')
@@ -7212,7 +7048,7 @@ $single_page_options = array(
7212
  'id' => 'enable-single-instagram-profile-url',
7213
  'type' => 'text',
7214
  'default' => '',
7215
- 'title' => __('Instagram URL', 'accelerated-mobile-pages'),
7216
  'required' => array(
7217
  array('amp-design-selector', '=' , '3'),
7218
  array('enable-single-instagram-profile', '=' , '1')
@@ -7222,7 +7058,7 @@ $single_page_options = array(
7222
  array(
7223
  'id' => 'enable-single-VKontakte-profile',
7224
  'type' => 'switch',
7225
- 'title' => __('VKontakte ', 'accelerated-mobile-pages'),
7226
  'default' => 0,
7227
  'required' => array(
7228
  array('amp-design-selector', '=' , '3')
@@ -7232,7 +7068,7 @@ $single_page_options = array(
7232
  'id' => 'enable-single-VKontakte-profile-url',
7233
  'type' => 'text',
7234
  'default' => '',
7235
- 'title' => __('VKontakte URL', 'accelerated-mobile-pages'),
7236
  'required' => array(
7237
  array('amp-design-selector', '=' , '3'),
7238
  array('enable-single-VKontakte-profile', '=' , '1')
@@ -7244,7 +7080,7 @@ $single_page_options = array(
7244
  array(
7245
  'id' => 'enable-single-reddit-profile',
7246
  'type' => 'switch',
7247
- 'title' => __('Reddit', 'accelerated-mobile-pages'),
7248
  'default' => 0,
7249
  'required' => array(
7250
  array('amp-design-selector', '=' , '3')
@@ -7253,7 +7089,7 @@ $single_page_options = array(
7253
  array(
7254
  'id' => 'enable-single-reddit-profile-url',
7255
  'type' => 'text',
7256
- 'title' => __('Reddit URL', 'accelerated-mobile-pages'),
7257
  'default' => '',
7258
  'required' => array(
7259
  array('amp-design-selector', '=' , '3'),
@@ -7264,7 +7100,7 @@ $single_page_options = array(
7264
  array(
7265
  'id' => 'enable-single-snapchat-profile',
7266
  'type' => 'switch',
7267
- 'title' => __('Snapchat ', 'accelerated-mobile-pages'),
7268
  'default' => 0,
7269
  'required' => array(
7270
  array('amp-design-selector', '=' , '3')
@@ -7273,7 +7109,7 @@ $single_page_options = array(
7273
  array(
7274
  'id' => 'enable-single-snapchat-profile-url',
7275
  'type' => 'text',
7276
- 'title' => __('Snapchat URL', 'accelerated-mobile-pages'),
7277
  'default' => '',
7278
  'required' => array(
7279
  array('amp-design-selector', '=' , '3'),
@@ -7284,7 +7120,7 @@ $single_page_options = array(
7284
  array(
7285
  'id' => 'enable-single-Tumblr-profile',
7286
  'type' => 'switch',
7287
- 'title' => __('Tumblr', 'accelerated-mobile-pages'),
7288
  'default' => 0,
7289
  'required' => array(
7290
  array('amp-design-selector', '=' , '3')
@@ -7293,7 +7129,7 @@ $single_page_options = array(
7293
  array(
7294
  'id' => 'enable-single-Tumblr-profile-url',
7295
  'type' => 'text',
7296
- 'title' => __('Tumblr URL', 'accelerated-mobile-pages'),
7297
  'default' => '',
7298
  'required' => array(
7299
  array('amp-design-selector', '=' , '3'),
@@ -7306,7 +7142,7 @@ $single_page_options = array(
7306
 
7307
  // Date SECTION
7308
  Redux::setSection( $opt_name, array(
7309
- 'title' => __( 'Date', 'accelerated-mobile-pages' ),
7310
  'id' => 'ampforwp-date-section',
7311
  'subsection' => true,
7312
  'fields' => array(
@@ -7314,17 +7150,17 @@ $single_page_options = array(
7314
  array(
7315
  'id' => 'amp-design-3-date-feature',
7316
  'type' => 'switch',
7317
- 'title' => __( 'Date in Posts', 'accelerated-mobile-pages' ),
7318
  'required' => array(
7319
  array('amp-design-selector', '=' , '3')
7320
  ),
7321
- 'tooltip-subtitle' => __('Display date along with author and category in posts', 'accelerated-mobile-pages' ),
7322
  'default' => '0'
7323
  ),
7324
  array(
7325
  'id' => 'date-tab-1',
7326
  'type' => 'section',
7327
- 'title' => __('General', 'accelerated-mobile-pages'),
7328
  'indent' => true,
7329
  'layout_type' => 'accordion',
7330
  'accordion-open'=> 1,
@@ -7333,7 +7169,7 @@ $single_page_options = array(
7333
  array(
7334
  'id' => 'ampforwp-post-date-global',
7335
  'type' => 'select',
7336
- 'title' => __( 'Show Date As', 'accelerated-mobile-pages' ),
7337
  'options' => array(
7338
  '1' => 'Published Date',
7339
  '2' => 'Modified Date'
@@ -7344,8 +7180,8 @@ $single_page_options = array(
7344
  array(
7345
  'id' =>'ampforwp-post-date-format',
7346
  'type' =>'select',
7347
- 'title' =>__('Date Format','accelerated-mobile-pages'),
7348
- 'tooltip-subtitle' => __('Select the Date Format of Posts', 'accelerated-mobile-pages'),
7349
  'options' => array(
7350
  '1' => 'Ago',
7351
  '2' => 'Traditional view'
@@ -7355,8 +7191,8 @@ $single_page_options = array(
7355
  array(
7356
  'id' =>'ampforwp-post-date-format-text',
7357
  'type' =>'text',
7358
- 'title' =>__('Text for the Date Format','accelerated-mobile-pages'),
7359
- 'desc' =>__('Example: English - % days ago, Spain - ago % days','accelerated-mobile-pages'),
7360
  'required' => array( array('ampforwp-post-date-format', '=', '1') ),
7361
  'default' =>'% days ago',
7362
  ),
@@ -7364,9 +7200,9 @@ $single_page_options = array(
7364
  array(
7365
  'id' => 'post-modified-date',
7366
  'type' => 'switch',
7367
- 'title' => __('Modified Date Notice', 'accelerated-mobile-pages'),
7368
  'default' => 0,
7369
- 'tooltip-subtitle' => __('Show Modified date of an article at the end of the post.', 'accelerated-mobile-pages'),
7370
  ),
7371
  )
7372
 
@@ -7380,7 +7216,7 @@ $single_page_options = array(
7380
  }
7381
  // Misc SECTION
7382
  Redux::setSection( $opt_name, array(
7383
- 'title' => __( 'Misc', 'accelerated-mobile-pages' ),
7384
  'desc' => $post_builder,
7385
  'id' => 'amp-design',
7386
  'subsection' => true,
@@ -7388,7 +7224,7 @@ $single_page_options = array(
7388
  array(
7389
  'id' => 'misc-tab-1',
7390
  'type' => 'section',
7391
- 'title' => __('General', 'accelerated-mobile-pages'),
7392
  'indent' => true,
7393
  'layout_type' => 'accordion',
7394
  'accordion-open'=> 1,
@@ -7398,17 +7234,17 @@ $single_page_options = array(
7398
  array(
7399
  'id' =>'amp-rtl-select-option',
7400
  'type' => 'switch',
7401
- 'title' => __('RTL Support', 'accelerated-mobile-pages'),
7402
  'default' => 0,
7403
- 'tooltip-subtitle' => __('Enable Right to Left language support', 'accelerated-mobile-pages'),
7404
  'true' => 'true',
7405
  'false' => 'false',
7406
  ),
7407
  array(
7408
  'id' => 'ampforwp-sub-categories-support',
7409
  'type' => 'switch',
7410
- 'title' => __('Sub-Categories under Category', 'accelerated-mobile-pages'),
7411
- 'tooltip-subtitle' => __('Display sub-categories on category pages', 'accelerated-mobile-pages'),
7412
  'default' => '0'
7413
  ),
7414
  )
@@ -7417,29 +7253,16 @@ $single_page_options = array(
7417
 
7418
  // Extension Section
7419
  Redux::setSection( $opt_name, array(
7420
- 'title' => __( 'Extensions', 'accelerated-mobile-pages' ),
7421
- // 'desc' => __( 'For full documentation on this field, visit: ', 'accelerated-mobile-pages' ) . '<a href="http://docs.reduxframework.com/core/fields/textarea/" target="_blank">http://docs.reduxframework.com/core/fields/textarea/</a>',
7422
  'id' => 'opt-go-premium',
7423
  'subsection' => false,
7424
  'desc' => $extension_listing,
7425
  'icon' => 'el el-puzzle',
7426
- // 'desc' => '<a href="http://ampforwp.com/advanced-amp-ads/#utm_source=options-panel&utm_medium=extension-tab_advanced-amp-ads&utm_campaign=AMP%20Plugin" target="_blank"><img class="ampforwp-extension-ad-img-banner" src="'.AMPFORWP_IMAGE_DIR . '/amp-ads-extension.png" width="345" height="500" /></a>
7427
- //
7428
- // <a href="http://ampforwp.com/custom-post-type/#utm_source=options-panel&utm_medium=extension-tab_custom-post-type&utm_campaign=AMP%20Plugin" target="_blank"><img class="ampforwp-extension-ad-img-banner" src="'.AMPFORWP_IMAGE_DIR . '/amp-custom-post-type-extension.png" width="345" height="500" /></a>
7429
- //
7430
- // <a href="http://ampforwp.com/doubleclick-for-publishers/#utm_source=options-panel&utm_medium=extension-tab_doubleclick&utm_campaign=AMP%20Plugin" target="_blank"><img class="ampforwp-extension-ad-img-banner" src="'.AMPFORWP_IMAGE_DIR . '/amp-DoubleClick-extensions.png" width="345" height="500" /></a>
7431
- //
7432
- // <a href="http://ampforwp.com/amp-ratings/#utm_source=options-panel&utm_medium=extension-tab_amp-ratings&utm_campaign=AMP%20Plugin" target="_blank"><img class="ampforwp-extension-ad-img-banner" src="'.AMPFORWP_IMAGE_DIR . '/amp-rating-extension.png" width="345" height="500" /></a>
7433
- //
7434
- //
7435
- // <a href="http://ampforwp.com/extensions/#utm_source=options-panel&utm_medium=extension-tab_coming-soon&utm_campaign=AMP%20Plugin" target="_blank"><img class="ampforwp-extension-ad-img-banner" src="'.AMPFORWP_IMAGE_DIR . '/extension-coming-soon.png" width="345" height="500" /></a>',
7436
- // 'icon' => 'el el-puzzle',
7437
  ) );
7438
 
7439
  if(!ampforwp_check_extensions()){
7440
  Redux::setSection( $opt_name, array(
7441
- 'title' => __( 'Free vs Pro', 'accelerated-mobile-pages' ),
7442
- // 'desc' => __( 'For full documentation on this field, visit: ', 'accelerated-mobile-pages' ) . '<a href="http://docs.reduxframework.com/core/fields/textarea/" target="_blank">http://docs.reduxframework.com/core/fields/textarea/</a>',
7443
  'id' => 'opt-choose',
7444
  'subsection' => false,
7445
  'desc' => $freepro_listing,
@@ -7450,19 +7273,16 @@ if(!ampforwp_check_extensions()){
7450
 
7451
  // Priority Support
7452
  Redux::setSection( $opt_name, array(
7453
- 'title' => __( 'Fix AMP Errors', 'accelerated-mobile-pages' ),
7454
- // 'desc' => __( 'For full documentation on this field, visit: ', 'accelerated-mobile-pages' ) . '<a href="http://docs.reduxframework.com/core/fields/textarea/" target="_blank">http://docs.reduxframework.com/core/fields/textarea/</a>',
7455
  'id' => 'opt-go-premium-support',
7456
  'subsection' => false,
7457
  'desc' => ' <a href="http://ampforwp.com/priority-support/#utm_source=options-panel&utm_medium=extension-tab_priority_support&utm_campaign=AMP%20Plugin" target="_blank"><img class="ampforwp-support-banner" src="'.AMPFORWP_IMAGE_DIR . '/priority-support-banner.png" width="345" height="500" /></a>',
7458
  'icon' => 'el el-hand-right',
7459
  ) );
7460
 
7461
-
7462
-
7463
  // Plugin Manager
7464
  Redux::setSection( $opt_name, array(
7465
- 'title' => __( 'Plugins Manager', 'accelerated-mobile-pages' ),
7466
  'id' => 'opt-plugins-manager',
7467
  'subsection' => false,
7468
  'desc' => 'You can Disable Plugins only in AMP which are causing AMP validation errors. <a href="http://ampforwp.com/plugins-manager" target="_blank">More Information.</a>',
@@ -7472,11 +7292,10 @@ if(!ampforwp_check_extensions()){
7472
  array(
7473
  'id' => 'ampforwp-plugin-manager-core',
7474
  'type' => 'switch',
7475
- 'title' => __('Enable Plugin Manager', 'accelerated-mobile-pages'),
7476
  'default' => 0
7477
  ),
7478
  array(
7479
- // 'title' => __('Notification text', 'accelerated-mobile-pages'),
7480
  'id' => 'info_normal',
7481
  'type' => 'info',
7482
  'required' => array('ampforwp-plugin-manager-core', '=' , '1'),
444
  $ampforwp_extension_list_html .= "</ul><h3 style='display:block;'>All Extensions</h3><ul>";
445
  $secondPageClickClass = 'goToSecondPage';
446
  }
447
+ $ampforwp_extension_list_html .= '<li class="first '.$currentStatus.' '.$secondPageClickClass.'" data-ext-details=\''.json_encode($extension).'\' data-ext-secure="'.wp_create_nonce('verify_extension').'">
448
  '.$onclickUrl.'
449
  <div class="align_left"><img src="'.$extension['img_src'].'" /></div>
450
  <div class="extension_desc">
977
 
978
  // All the possible arguments for Redux.
979
  //$amp_redux_header = '<span id="name"><span style="color: #4dbefa;">U</span>ltimate <span style="color: #4dbefa;">W</span>idgets</span>';
980
+ $proDetailsProvide = '<a class="premium_features_btn_txt" href="https://ampforwp.com/membership/#utm_source=options-panel&utm_medium=view_pro_features_btn&utm_campaign=AMP%20Plugin" target="_blank">'.esc_html__('Get more out of AMP','accelerated-mobile-pages').'</a> <a class="premium_features_btn" href="https://ampforwp.com/membership/#utm_source=options-panel&utm_medium=view_pro_features_btn&utm_campaign=AMP%20Plugin" target="_blank">Get PRO Version</a> ';
981
  if($ampforwp_nameOfUser!=""){
982
  $proDetailsProvide = "<span class='extension-menu-call'><span class='activated-plugins'>Hello, ".$ampforwp_nameOfUser."</span> <a class='' href='".admin_url('admin.php?page=amp_options&tabid=opt-go-premium')."'><i class='dashicons-before dashicons-admin-generic'></i></a></span>";
983
  }elseif($ampforwp_is_productActivated){
986
  $args = array(
987
  // TYPICAL -> Change these values as you need/desire
988
  'opt_name' => 'redux_builder_amp', // This is where your data is stored in the database and also becomes your global variable name.
989
+ 'display_name' => esc_html__( 'AMPforWP Options','accelerated-mobile-pages' ), // Name that appears at the top of your panel
990
  'menu_type' => 'menu', //Specify if the admin menu should appear or not. Options: menu or submenu (Under appearance only)
991
  'allow_sub_menu' => true, // Show the sections below the admin menu item or not
992
+ 'menu_title' => esc_html__( 'AMP', 'accelerated-mobile-pages' ),
993
+ 'page_title' => esc_html__('Accelerated Mobile Pages Options','accelerated-mobile-pages'),
994
  'display_version' => AMPFORWP_VERSION,
995
  'update_notice' => false,
996
  'intro_text' => $proDetailsProvide,
1032
  $tabs = array(
1033
  array(
1034
  'id' => 'redux-help-tab-1',
1035
+ 'title' => esc_html__( 'Theme Information 1', 'accelerated-mobile-pages' ),
1036
+ 'content' => esc_html__( '<p>This is the tab content, HTML is allowed.</p>', 'accelerated-mobile-pages' )
1037
  ),
1038
  array(
1039
  'id' => 'redux-help-tab-2',
1040
+ 'title' => esc_html__( 'Theme Information 2', 'accelerated-mobile-pages' ),
1041
+ 'content' => esc_html__( '<p>This is the tab content, HTML is allowed.</p>', 'accelerated-mobile-pages' )
1042
  )
1043
  );
1044
  Redux::setHelpTab( $opt_name, $tabs );
1045
 
1046
  // Set the help sidebar
1047
+ $content = esc_html__( '<p>This is the sidebar content, HTML is allowed.</p>', 'accelerated-mobile-pages' );
1048
  Redux::setHelpSidebar( $opt_name, $content );
1049
 
1050
 
1059
  */
1060
 
1061
  Redux::setSection( $opt_name, array(
1062
+ 'title' => esc_html__( 'Basic Field', 'accelerated-mobile-pages' ),
1063
  'id' => 'basic',
1064
+ 'desc' => esc_html__( 'Basic field with no subsections.', 'accelerated-mobile-pages' ),
1065
  'icon' => 'el el-home',
1066
  'fields' => array(
1067
  array(
1068
  'id' => 'opt-blank',
1069
+ 'title' => esc_html__( 'Example Text', 'accelerated-mobile-pages' ),
1070
+ 'desc' => esc_html__( 'Example description.', 'accelerated-mobile-pages' ),
1071
+ 'tooltip-subtitle' => esc_html__( 'Example subtitle.', 'accelerated-mobile-pages' ),
1072
  )
1073
  )
1074
  ) );
1075
 
1076
  Redux::setSection( $opt_name, array(
1077
+ 'title' => esc_html__( 'Settings', 'accelerated-mobile-pages' ),
1078
  'id' => 'basic',
1079
+ 'desc' => '<div class="amp-faq">'.esc_html__('Thank you for using Accelerated Mobile Pages plugin.', 'accelerated-mobile-pages'). ' ' .
1080
+ ' <h2 style="width: 150px;float: right;
 
1081
  padding: 8px 11px;background: #4CAF50;
1082
  font-size: 13px;margin: -40px 0 0 10px;
1083
+ border-radius: 5px;line-height: 22px;position:relative;top:30px"><a style="color: #fff;text-decoration: none;" href="https://wordpress.org/support/view/plugin-reviews/accelerated-mobile-pages?rate=5#postform">'.esc_html__('Like this plugin?', 'accelerated-mobile-pages').'<br />'.esc_html__(' Leave a 5 Star Rating', 'accelerated-mobile-pages').'</a></h2>'.esc_html__('We are actively working on updating the plugin. We have built user friendly options which allows you to make changes on your AMP version.', 'accelerated-mobile-pages' )
1084
  . '<div style="width:100%;margin:20px 0px 10px 0px" class="getstarted_wrapper">
1085
  <div class="getstarted_options">
1086
+ <p><b>'.esc_html__('Getting Started', 'accelerated-mobile-pages').'</b></p>
1087
  <ul class="getstarted_ul">
1088
+ <li><a href="https://ampforwp.com/tutorials/article-categories/installation-updating/" target="_blank">'.esc_html__('Installation & Setup', 'accelerated-mobile-pages').'</a></li>
1089
+ <li><a href="https://ampforwp.com/tutorials/article-categories/settings-options/" target="_blank">'.esc_html__('Settings & Options', 'accelerated-mobile-pages').'</a></li>
1090
+ <li><a href="https://ampforwp.com/tutorials/article-categories/setup-amp/" target="_blank">'.esc_html__('Setup AMP', 'accelerated-mobile-pages').'</a></li>
1091
+ <li><a href="https://ampforwp.com/tutorials/article-categories/page-builder/" target="_blank">'.esc_html__('Page Builder', 'accelerated-mobile-pages').'</a></li>
1092
  </ul>
1093
  </div>
1094
  <div class="getstarted_options">
1095
+ <p><b>'.esc_html__('Useful Links', 'accelerated-mobile-pages').'</b></p>
1096
  <ul class="getstarted_ul">
1097
+ <li><a href="https://ampforwp.com/tutorials/article-categories/extension/" target="_blank">'.esc_html__('Extensions & Themes Docs', 'accelerated-mobile-pages').'</a></li>
1098
+ <li><a href="https://ampforwp.com/tutorials/article-categories/extending/" target="_blank">'.esc_html__('Developers Docs', 'accelerated-mobile-pages').'</a></li>
1099
+ <li><a href="https://ampforwp.com/amp-theme-framework/" target="_blank">'.esc_html__('Create a Custom Theme for AMP', 'accelerated-mobile-pages').'</a></li>
1100
+ <li><a href="https://ampforwp.com/tutorials/article-categories/how-to/" target="_blank">'.esc_html__('General How To\'s', 'accelerated-mobile-pages').'</a></li>
1101
  </ul>
1102
  </div>
1103
  <div class="getstarted_options" style="padding-bottom: 33px;width: 16%;" >
1104
+ <p><b>'.esc_html__('Get Stable Updates', 'accelerated-mobile-pages').'</b></p>
1105
  <ul class="getstarted_ul">
1106
+ <li style="list-style:none;"><a href="https://ampforwp.com/beta-test/" target="_blank">'.esc_html__('Become a Beta Tester and Help us Push Stable Updates', 'accelerated-mobile-pages').'</a></li>
1107
  </ul>
1108
  </div>
1109
  <div class="clear"></div>
1110
  </div>'
1111
+ . '<p><strong>1. <a href="https://ampforwp.com/priority-support/" target="_blank">' . esc_html__( 'Fixing AMP Validation Errors ', 'accelerated-mobile-pages' ) . '</a>:</strong>' . esc_html__( 'We will personally take care that your website’s AMP version is perfectly validated. We will make sure that your AMP version gets approved and indexed by Google Webmaster Tools properly and we will even keep an eye on AMP updates from Google and implement them into your website.' ) . '</p>'
1112
+ . '<p><strong>2. <a href="https://ampforwp.com/help/#support-forum" target="_blank">' . esc_html__( 'Community Support Forum ', 'accelerated-mobile-pages' ) . '</a>:</strong>' . esc_html__( 'We have a special community support forum where you can ask us questions and get help about your AMP related questions. Delivering a good user experience means alot to us and so we try our best to reply each and every question that gets asked.', 'accelerated-mobile-pages' ) . '</p>'
1113
+ . '<p><strong>3. <a href="https://ampforwp.com/help/#contact" target="_blank">' . esc_html__( 'Hire Us / Other queries ', 'accelerated-mobile-pages' ) . '</a>:</strong>' . esc_html__( 'We try to answer each and every email, so remember to give us some time. For any other queries, please use the contact form. Please be descriptive as possible.', 'accelerated-mobile-pages' ) . '</p>'
1114
+ . '<p><strong>4. <a href="http://ampforwp.com/new/" target="_blank">' . esc_html__( ' What\'s New in this Version? ', 'accelerated-mobile-pages' ) . '</strong>' . esc_html__( 'If you want to know whats new in the latest version of the plugin, then please use this link. ', 'accelerated-mobile-pages') . '</a>:</p>'
1115
 
1116
  . '</p></div>
1117
+ <br /><p><h3>'.esc_html__('Take AMP to the Next Level with Premium Extensions').'</h3></p>
1118
  ' .$gettingstarted_extension_listing
1119
 
1120
+ ,
1121
  'icon' => 'el el-cogs'
1122
  ) );
1123
 
1153
  $amp_cpt_option = array(
1154
  'id' => 'ampforwp-custom-type',
1155
  'type' => 'select',
1156
+ 'title' => esc_html__('Custom Post Types', 'accelerated-mobile-pages'),
1157
+ 'tooltip-subtitle' => esc_html__('Enable AMP Support on Custom Post Types', 'accelerated-mobile-pages'),
1158
  'multi' => true,
1159
  //'data' => 'post_type',
1160
  'options' => ampforwp_get_cpt_generated_post_types(),
1174
  }
1175
 
1176
  Redux::setSection( $opt_name, array(
1177
+ 'title' => esc_html__( 'General', 'accelerated-mobile-pages' ),
 
1178
  'id' => 'opt-text-subsection',
1179
  'subsection' => true,
1180
  'fields' => array(
1181
  array(
1182
  'id' => 'amp-logo',
1183
  'type' => 'section',
1184
+ 'title' => esc_html__('Branding', 'accelerated-mobile-pages'),
1185
  'indent' => true,
1186
  'layout_type' => 'accordion',
1187
  'accordion-open'=> 1,
1191
  'id' => 'opt-media',
1192
  'type' => 'media',
1193
  'url' => true,
1194
+ 'title' => esc_html__('Logo', 'accelerated-mobile-pages'),
1195
+ 'tooltip-subtitle'=>esc_html__('Upload a logo for the AMP version. (Recommended logo size: 190x36)', 'accelerated-mobile-pages'),
1196
  'default' => array('url' => ampforwp_default_logo_settings() ),
1197
  ),
1198
  array(
1199
  'id' => 'ampforwp-custom-logo-dimensions',
1200
+ 'title' => esc_html__('Resize', 'accelerated-mobile-pages'),
1201
  'type' => 'switch',
1202
  'default' => 0,
1203
  ),
1204
  array(
1205
  'id' => 'ampforwp-custom-logo-dimensions-options',
1206
+ 'title' => esc_html__('Resize Method', 'accelerated-mobile-pages'),
1207
  'type' => 'select',
1208
  'class' => 'child_opt child_opt_arrow',
1209
  'default' => '100',
1216
  ),
1217
  array(
1218
  'id' => 'ampforwp-custom-logo-dimensions-slider',
1219
+ 'title' => esc_html__('Resize Your Logo', 'accelerated-mobile-pages'),
1220
  'type' => 'amp_slider',
1221
  'class' => 'child_opt',
1222
  'default' => '100',
1228
  'class' => 'child_opt',
1229
  'id' => 'opt-media-width',
1230
  'type' => 'text',
1231
+ 'title' => esc_html__('Logo Width', 'accelerated-mobile-pages'),
1232
  'tooltip-subtitle' => __('Default width is 190 pixels', 'accelerated-mobile-pages'),
1233
  'default' => '190',
1234
  'required'=>array('ampforwp-custom-logo-dimensions-options','=','prescribed'),
1237
  'class' => 'child_opt',
1238
  'id' => 'opt-media-height',
1239
  'type' => 'text',
1240
+ 'title' => esc_html__('Logo Height', 'accelerated-mobile-pages'),
1241
  'tooltip-subtitle' => __('Default height is 36 pixels', 'accelerated-mobile-pages'),
1242
  'default' => '36',
1243
  'required'=>array('ampforwp-custom-logo-dimensions-options','=','prescribed'),
1246
  array(
1247
  'id' => 'amp-support',
1248
  'type' => 'section',
1249
+ 'title' => esc_html__('AMP Support', 'accelerated-mobile-pages'),
1250
  'indent' => true,
1251
  'layout_type' => 'accordion',
1252
  'accordion-open'=> 1,
1254
  array(
1255
  'id' =>'amp-on-off-for-all-posts',
1256
  'type' => 'switch',
1257
+ 'title' => esc_html__('Posts', 'accelerated-mobile-pages'),
1258
+ 'tooltip-subtitle' => esc_html__('Enable AMP Support on Posts', 'accelerated-mobile-pages'),
1259
  'default' => 1,
 
1260
  ),
1261
  array(
1262
  'id' =>'amp-on-off-for-all-pages',
1263
  'type' => 'switch',
1264
+ 'title' => esc_html__('Pages', 'accelerated-mobile-pages'),
1265
+ 'tooltip-subtitle' => esc_html__('Enable AMP Support on Pages.', 'accelerated-mobile-pages'),
1266
  'default' => 1,
 
1267
  ),
1268
  array(
1269
  'id' => 'ampforwp-homepage-on-off-support',
1270
  'type' => 'switch',
1271
+ 'title' => esc_html__('Homepage', 'accelerated-mobile-pages'),
1272
+ 'tooltip-subtitle' => esc_html__('Enable AMP Support on Homepage.', 'accelerated-mobile-pages'),
1273
  'default' => '1'
1274
  ),
1275
  array(
1276
  'id' =>'amp-frontpage-select-option',
1277
  'type' => 'switch',
1278
+ 'title' => esc_html__('Custom Front Page', 'accelerated-mobile-pages'),
1279
  'default' => 0,
1280
+ 'tooltip-subtitle' => esc_html__('Set Custom Front Page as Homepage', 'accelerated-mobile-pages'),
1281
  'true' => 'true',
1282
  'false' => 'false',
1283
  'required' => array('ampforwp-homepage-on-off-support','=','1'),
 
1284
  ),
1285
  array(
1286
  'id' => 'amp-frontpage-select-option-pages',
1287
  'type' => 'select',
1288
  'class' => 'child_opt child_opt_arrow',
1289
+ 'title' => esc_html__('Select Page as Front Page', 'accelerated-mobile-pages'),
1290
  'required' => array('amp-frontpage-select-option', '=' , '1'),
1291
  // Must provide key => value pairs for select options
1292
  'data' => 'page',
1301
  'type' => 'switch',
1302
  'class' => 'child_opt',
1303
  'url' => true,
1304
+ 'title' => esc_html__('Title on Static Front Page', 'accelerated-mobile-pages'),
1305
+ 'tooltip-subtitle' => esc_html__('Enable/Disable display of title on the Static Front Page.', 'accelerated-mobile-pages'),
1306
  'default' => 0,
1307
  'required' => array('amp-frontpage-select-option', '=' , '1'),
1308
  ),
1310
  array(
1311
  'id' => 'ampforwp-archive-support',
1312
  'type' => 'switch',
1313
+ 'title' => esc_html__('Archives [Category & Tags]', 'accelerated-mobile-pages'),
1314
+ 'tooltip-subtitle' => esc_html__('Enable AMP Support on Archives.', 'accelerated-mobile-pages'),
1315
  'default' => '0'
1316
  ),
1317
  $amp_cpt_option,
1318
  array(
1319
  'id' => 'ampforwp-amp-convert-to-wp',
1320
  'type' => 'switch',
1321
+ 'title' => esc_html__('Convert AMP to WP theme (Beta)', 'accelerated-mobile-pages'),
1322
+ 'tooltip-subtitle' => esc_html__('It makes your AMP & Non-AMP Same! (AMP will output AMP Compatible code, while WordPress will have the WP code but with the same design)', 'accelerated-mobile-pages'),
1323
  'default' => ampforwp_amp2wp_default(),
1324
  'required' => array('amp-design-selector', '=' , '4'),
1325
  ),
1326
  array(
1327
  'id' => 'ampforwp-amp-takeover',
1328
  'type' => 'switch',
1329
+ 'title' => esc_html__('AMP Takeover (Beta)', 'accelerated-mobile-pages'),
1330
+ 'tooltip-subtitle' => esc_html__('Make your non-amp to load the AMP (AMP & NON-AMP both will be AMP with same design)', 'accelerated-mobile-pages'),
1331
  'default' => '0'
1332
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1333
  )
1334
  ) );//END
1335
 
1336
  // AMP Content Page Builder SECTION
1337
  Redux::setSection( $opt_name, array(
1338
+ 'title' => esc_html__( 'Page Builder', 'accelerated-mobile-pages' ),
1339
  'class' =>'',
1340
  'id' => 'amp-content-builder',
1341
  'class' => 'ampforwp-new-element',
1353
  position: absolute;
1354
  left: 0px;
1355
  top: 15px;
1356
+ font-size: 15px;"><b>'.esc_html__('Introducing AMP Page Builder 3.0', 'accelerated-mobile-pages').'</b>,'.esc_html__('Re-Engineered in Vue.js!', 'accelerated-mobile-pages').'<br /> <a href="https://ampforwp.com/tutorials/article/amp-page-builder-installation/" target="_blank">'.esc_html__('Learn how to use this Feature','accelerated-mobile-pages').'</a></div>
1357
 
1358
  <iframe style="position: absolute;left: 0px;margin-top: 67px;" width="600" height="400" src="https://www.youtube.com/embed/QTbkn2rHyqM" frameborder="0" allowfullscreen></iframe>
1359
 
1369
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
1370
  if(!is_plugin_active( 'amp-incontent-ads/amptoolkit-incontent-ads.php' ) ){
1371
 
1372
+ $desc = '<a href="'.esc_url($AD_URL).'" target="_blank"><img class="ampforwp-ad-img-banner" src="'.AMPFORWP_IMAGE_DIR . '/amp-ads-retina.png" width="560" height="85" /></a>';
1373
  }
1374
 
1375
  // ADS SECTION
1376
  Redux::setSection( $opt_name, array(
1377
+ 'title' => esc_html__( 'Advertisement', 'accelerated-mobile-pages' ),
1378
  'desc' => $desc,
1379
  'id' => 'amp-ads',
1380
  'subsection' => true,
1382
  array(
1383
  'id' => 'amp-ads_1',
1384
  'type' => 'section',
1385
+ 'title' => esc_html__('Advertisement Positions', 'accelerated-mobile-pages'),
1386
  'indent' => true,
1387
  'layout_type' => 'accordion',
1388
  'accordion-open'=> 1,
1391
  array(
1392
  'id' =>'enable-amp-ads-1',
1393
  'type' => 'switch',
1394
+ 'title' => esc_html__('AD #1', 'accelerated-mobile-pages'),
1395
  'default' => 0,
1396
+ 'desc' => esc_html__('Below the Header (SiteWide)', 'accelerated-mobile-pages'),
1397
  'true' => 'Enabled',
1398
  'false' => 'Disabled',
1399
  ),
1401
  'class' => 'child_opt child_opt_arrow',
1402
  'id' => 'enable-amp-ads-select-1',
1403
  'type' => 'select',
1404
+ 'title' => esc_html__('AD Size', 'accelerated-mobile-pages'),
1405
  'required' => array('enable-amp-ads-1', '=' , '1'),
1406
  // Must provide key => value pairs for select options
1407
  'options' => array(
1408
+ '1' => esc_html__('300x250','accelerated-mobile-pages'),
1409
+ '2' => esc_html__('336x280','accelerated-mobile-pages'),
1410
+ '3' => esc_html__('728x90','accelerated-mobile-pages'),
1411
+ '4' => esc_html__('300x600','accelerated-mobile-pages'),
1412
+ '5' => esc_html__('320x100','accelerated-mobile-pages'),
1413
+ '6' => esc_html__('200x50','accelerated-mobile-pages'),
1414
+ '7' => esc_html__('320x50','accelerated-mobile-pages'), ),
1415
  'default' => '2',
1416
  ),
1417
  array(
1419
  'id' =>'enable-amp-ads-text-feild-client-1',
1420
  'type' => 'text',
1421
  'required' => array('enable-amp-ads-1', '=' , '1'),
1422
+ 'title' => esc_html__('Data AD Client', 'accelerated-mobile-pages'),
1423
+ 'tooltip-subtitle' => esc_html__('Enter the Data Ad Client (data-ad-client) from the adsense ad code.', 'accelerated-mobile-pages'),
1424
  'default' => '',
1425
  'placeholder'=> 'ca-pub-2005XXXXXXXXX342'
1426
  ),
1428
  'class' => 'child_opt',
1429
  'id' => 'enable-amp-ads-text-feild-slot-1',
1430
  'type' => 'text',
1431
+ 'title' => esc_html__('Data AD Slot', 'accelerated-mobile-pages'),
1432
+ 'tooltip-subtitle' => esc_html__('Enter the Data Ad Slot (data-ad-slot) from the adsense ad code.', 'accelerated-mobile-pages'),
1433
  'default' => '',
1434
  'required' => array('enable-amp-ads-1', '=' , '1'),
1435
  'placeholder'=> '70XXXXXX12'
1438
  'class' => 'child_opt',
1439
  'id' =>'enable-amp-ads-resp-1',
1440
  'type' => 'switch',
1441
+ 'title' => esc_html__('Responsive Ad unit', 'accelerated-mobile-pages'),
1442
  'default' => 0,
1443
  'required' => array('enable-amp-ads-1', '=' , '1'),
1444
  ),
1448
  array(
1449
  'id'=>'enable-amp-ads-2',
1450
  'type' => 'switch',
1451
+ 'title' => esc_html__('AD #2', 'accelerated-mobile-pages'),
1452
  'default' => 0,
1453
+ 'desc' => esc_html__('Below the Footer (SiteWide)', 'accelerated-mobile-pages'),
1454
  'true' => 'Enabled',
1455
  'false' => 'Disabled',
1456
  ),
1458
  'class' => 'child_opt child_opt_arrow',
1459
  'id' => 'enable-amp-ads-select-2',
1460
  'type' => 'select',
1461
+ 'title' => esc_html__('AD Size', 'accelerated-mobile-pages'),
1462
  'required' => array('enable-amp-ads-2', '=' , '1'),
1463
  // Must provide key => value pairs for select options
1464
  'options' => array(
1477
  'id' =>'enable-amp-ads-text-feild-client-2',
1478
  'type' => 'text',
1479
  'required' => array('enable-amp-ads-2', '=' , '1'),
1480
+ 'title' => esc_html__('Data AD Client', 'accelerated-mobile-pages'),
1481
  'tooltip-subtitle' => __('Enter the Data Ad Client (data-ad-client) from the adsense ad code.', 'accelerated-mobile-pages'),
1482
  'default' => '',
1483
  'placeholder'=> 'ca-pub-2005XXXXXXXXX342'
1486
  'class' => 'child_opt',
1487
  'id' => 'enable-amp-ads-text-feild-slot-2',
1488
  'type' => 'text',
1489
+ 'title' => esc_html__('Data AD Slot', 'accelerated-mobile-pages'),
1490
+ 'tooltip-subtitle' => esc_html__('Enter the Data Ad Slot (data-ad-slot) from the adsense ad code.', 'accelerated-mobile-pages'),
1491
  'default' => '',
1492
  'required' => array('enable-amp-ads-2', '=' , '1'),
1493
  'placeholder'=> '70XXXXXX12'
1496
  'class' => 'child_opt',
1497
  'id' =>'enable-amp-ads-resp-2',
1498
  'type' => 'switch',
1499
+ 'title' => esc_html__('Responsive Ad unit', 'accelerated-mobile-pages'),
1500
  'default' => 0,
1501
  'required' => array('enable-amp-ads-2', '=' , '1'),
1502
  ),
1506
  array(
1507
  'id' => 'enable-amp-ads-3',
1508
  'type' => 'switch',
1509
+ 'title' => esc_html__('AD #3', 'accelerated-mobile-pages'),
1510
  'default' => 0,
1511
+ 'desc' => esc_html__('Above the Post Content', 'accelerated-mobile-pages'),
1512
  'true' => 'Enabled',
1513
  'false' => 'Disabled',
1514
  ),
1516
  'class' => 'child_opt child_opt_arrow',
1517
  'id' => 'made-amp-ad-3-global',
1518
  'type' => 'select',
1519
+ 'title' => esc_html__('Display on', 'accelerated-mobile-pages'),
1520
  'options' => array (
1521
  '1' => 'Single',
1522
  '2' => 'Pages',
1525
  ),
1526
  'multi' => true,
1527
  'default' => '1',
1528
+ 'desc' => esc_html__('Display the Ad on only post or on all posts and pages ', 'accelerated-mobile-pages'),
1529
  'required' => array('enable-amp-ads-3', '=' , '1')
1530
  ),
1531
  array(
1532
  'class' => 'child_opt child_opt_arrow',
1533
  'id' => 'enable-amp-ads-select-3',
1534
  'type' => 'select',
1535
+ 'title' => esc_html__('AD Size', 'accelerated-mobile-pages'),
1536
  'required' => array('enable-amp-ads-3', '=' , '1'),
1537
  // Must provide key => value pairs for select options
1538
  'options' => array(
1551
  'id' =>'enable-amp-ads-text-feild-client-3',
1552
  'type' => 'text',
1553
  'required' => array('enable-amp-ads-3', '=' , '1'),
1554
+ 'title' => esc_html__('Data AD Client', 'accelerated-mobile-pages'),
1555
+ 'tooltip-subtitle' => esc_html__('Enter the Data Ad Client (data-ad-client) from the adsense ad code.', 'accelerated-mobile-pages'),
1556
  'default' => '',
1557
  'placeholder'=> 'ca-pub-2005XXXXXXXXX342'
1558
  ),
1560
  'class' => 'child_opt',
1561
  'id' => 'enable-amp-ads-text-feild-slot-3',
1562
  'type' => 'text',
1563
+ 'title' => esc_html__('Data AD Slot', 'accelerated-mobile-pages'),
1564
+ 'tooltip-subtitle' => esc_html__('Enter the Data Ad Slot (data-ad-slot) from the adsense ad code.', 'accelerated-mobile-pages'),
1565
  'default' => '',
1566
  'required' => array('enable-amp-ads-3', '=' , '1'),
1567
  'placeholder'=> '70XXXXXX12'
1570
  'class' => 'child_opt',
1571
  'id' =>'enable-amp-ads-resp-3',
1572
  'type' => 'switch',
1573
+ 'title' => esc_html__('Responsive Ad unit', 'accelerated-mobile-pages'),
1574
  'default' => 0,
1575
  'required' => array('enable-amp-ads-3', '=' , '1'),
1576
  ),
1580
  array(
1581
  'id' => 'enable-amp-ads-4',
1582
  'type' => 'switch',
1583
+ 'title' => esc_html__('AD #4', 'accelerated-mobile-pages'),
1584
  'default' => 0,
1585
+ 'desc' => esc_html__('Below the Post Content (Single Post)', 'accelerated-mobile-pages'),
1586
  'true' => 'Enabled',
1587
  'false' => 'Disabled',
1588
  ),
1590
  'class' => 'child_opt child_opt_arrow',
1591
  'id' => 'enable-amp-ads-select-4',
1592
  'type' => 'select',
1593
+ 'title' => esc_html__('AD Size', 'accelerated-mobile-pages'),
1594
  'required' => array('enable-amp-ads-4', '=' , '1'),
1595
  // Must provide key => value pairs for select options
1596
  'options' => array(
1597
+ '1' => esc_html__('300x250','accelerated-mobile-pages'),
1598
+ '2' => esc_html__('336x280','accelerated-mobile-pages'),
1599
+ '3' => esc_html__('728x90','accelerated-mobile-pages'),
1600
+ '4' => esc_html__('300x600','accelerated-mobile-pages'),
1601
+ '5' => esc_html__('320x100','accelerated-mobile-pages'),
1602
+ '6' => esc_html__('200x50','accelerated-mobile-pages'),
1603
+ '7' => esc_html__('320x50','accelerated-mobile-pages')
1604
  ),
1605
  'default' => '2',
1606
  ),
1609
  'id' =>'enable-amp-ads-text-feild-client-4',
1610
  'type' => 'text',
1611
  'required' => array('enable-amp-ads-4', '=' , '1'),
1612
+ 'title' => esc_html__('Data AD Client', 'accelerated-mobile-pages'),
1613
+ 'tooltip-subtitle' => esc_html__('Enter the Data Ad Client (data-ad-client) from the adsense ad code.', 'accelerated-mobile-pages'),
1614
  'default' => '',
1615
  'placeholder'=> 'ca-pub-2005XXXXXXXXX342'
1616
  ),
1618
  'class' => 'child_opt',
1619
  'id' => 'enable-amp-ads-text-feild-slot-4',
1620
  'type' => 'text',
1621
+ 'title' => esc_html__('Data AD Slot', 'accelerated-mobile-pages'),
1622
+ 'tooltip-subtitle' => esc_html__('Enter the Data Ad Slot (data-ad-slot) from the adsense ad code. ', 'accelerated-mobile-pages'),
1623
  'default' => '',
1624
  'required' => array('enable-amp-ads-4', '=' , '1'),
1625
  'placeholder'=> '70XXXXXX12'
1628
  'class' => 'child_opt',
1629
  'id' =>'enable-amp-ads-resp-4',
1630
  'type' => 'switch',
1631
+ 'title' => esc_html__('Responsive Ad unit', 'accelerated-mobile-pages'),
1632
  'default' => 0,
1633
  'required' => array('enable-amp-ads-4', '=' , '1'),
1634
  ),
1638
  array(
1639
  'id' => 'enable-amp-ads-5',
1640
  'type' => 'switch',
1641
+ 'title' => esc_html__('AD #5', 'accelerated-mobile-pages'),
1642
  'default' => 0,
1643
+ 'desc' => esc_html__('Below The Title (Single Post)', 'accelerated-mobile-pages'),
1644
  'true' => 'Enabled',
1645
  'false' => 'Disabled',
1646
  ),
1648
  'class' => 'child_opt child_opt_arrow',
1649
  'id' => 'enable-amp-ads-select-5',
1650
  'type' => 'select',
1651
+ 'title' => esc_html__('AD Size', 'accelerated-mobile-pages'),
1652
  'required' => array('enable-amp-ads-5', '=' , '1'),
1653
  // Must provide key => value pairs for select options
1654
  'options' => array(
1655
+ '1' => esc_html__('300x250','accelerated-mobile-pages'),
1656
+ '2' => esc_html__('336x280','accelerated-mobile-pages'),
1657
+ '3' => esc_html__('728x90','accelerated-mobile-pages'),
1658
+ '4' => esc_html__('300x600','accelerated-mobile-pages'),
1659
+ '5' => esc_html__('320x100','accelerated-mobile-pages'),
1660
+ '6' => esc_html__('200x50','accelerated-mobile-pages'),
1661
+ '7' => esc_html__('320x50','accelerated-mobile-pages')
1662
  ),
1663
  'default' => '2',
1664
  ),
1667
  'id' =>'enable-amp-ads-text-feild-client-5',
1668
  'type' => 'text',
1669
  'required' => array('enable-amp-ads-5', '=' , '1'),
1670
+ 'title' => esc_html__('Data AD Client', 'accelerated-mobile-pages'),
1671
+ 'tooltip-subtitle' => esc_html__('Enter the Data Ad Client (data-ad-client) from the adsense ad code.', 'accelerated-mobile-pages'),
1672
  'default' => '',
1673
  'placeholder'=> 'ca-pub-2005XXXXXXXXX342'
1674
  ),
1676
  'class' => 'child_opt',
1677
  'id' => 'enable-amp-ads-text-feild-slot-5',
1678
  'type' => 'text',
1679
+ 'title' => esc_html__('Data AD Slot', 'accelerated-mobile-pages'),
1680
+ 'tooltip-subtitle' => esc_html__('Enter the Data Ad Slot (data-ad-slot) from the adsense ad code. ', 'accelerated-mobile-pages'),
1681
  'default' => '',
1682
  'required' => array('enable-amp-ads-5', '=' , '1'),
1683
  'placeholder'=> '70XXXXXX12'
1686
  'class' => 'child_opt',
1687
  'id' =>'enable-amp-ads-resp-5',
1688
  'type' => 'switch',
1689
+ 'title' => esc_html__('Responsive Ad unit', 'accelerated-mobile-pages'),
1690
  'default' => 0,
1691
  'required' => array('enable-amp-ads-5', '=' , '1'),
1692
  ),
1695
  array(
1696
  'id' => 'enable-amp-ads-6',
1697
  'type' => 'switch',
1698
+ 'title' => esc_html__('AD #6', 'accelerated-mobile-pages'),
1699
  'default' => 0,
1700
+ 'desc' => esc_html__('Above the Related Posts (Single Post)', 'accelerated-mobile-pages'),
1701
  'true' => 'Enabled',
1702
  'false' => 'Disabled',
1703
  ),
1705
  'class' => 'child_opt child_opt_arrow',
1706
  'id' => 'enable-amp-ads-select-6',
1707
  'type' => 'select',
1708
+ 'title' => esc_html__('AD Size', 'accelerated-mobile-pages'),
1709
  'required' => array('enable-amp-ads-6', '=' , '1'),
1710
  // Must provide key => value pairs for select options
1711
  'options' => array(
1712
+ '1' => esc_html__('300x250','accelerated-mobile-pages'),
1713
+ '2' => esc_html__('336x280','accelerated-mobile-pages'),
1714
+ '3' => esc_html__('728x90','accelerated-mobile-pages'),
1715
+ '4' => esc_html__('300x600','accelerated-mobile-pages'),
1716
+ '5' => esc_html__('320x100','accelerated-mobile-pages'),
1717
+ '6' => esc_html__('200x50','accelerated-mobile-pages'),
1718
+ '7' => esc_html__('320x50','accelerated-mobile-pages')
1719
  ),
1720
  'default' => '2',
1721
  ),
1724
  'id' =>'enable-amp-ads-text-feild-client-6',
1725
  'type' => 'text',
1726
  'required' => array('enable-amp-ads-6', '=' , '1'),
1727
+ 'title' => esc_html__('Data AD Client', 'accelerated-mobile-pages'),
1728
+ 'tooltip-subtitle' => esc_html__('Enter the Data Ad Client (data-ad-client) from the adsense ad code.', 'accelerated-mobile-pages'),
1729
  'default' => '',
1730
  'placeholder'=> 'ca-pub-2005XXXXXXXXX342'
1731
  ),
1733
  'class' => 'child_opt',
1734
  'id' => 'enable-amp-ads-text-feild-slot-6',
1735
  'type' => 'text',
1736
+ 'title' => esc_html__('Data AD Slot', 'accelerated-mobile-pages'),
1737
+ 'tooltip-subtitle' => esc_html__('Enter the Data Ad Slot (data-ad-slot) from the adsense ad code. ', 'accelerated-mobile-pages'),
1738
  'default' => '',
1739
  'required' => array('enable-amp-ads-6', '=' , '1'),
1740
  'placeholder'=> '70XXXXXX12'
1743
  'class' => 'child_opt',
1744
  'id' =>'enable-amp-ads-resp-6',
1745
  'type' => 'switch',
1746
+ 'title' => esc_html__('Responsive Ad unit', 'accelerated-mobile-pages'),
1747
  'default' => 0,
1748
  'required' => array('enable-amp-ads-6', '=' , '1'),
1749
  ),
1751
  array(
1752
  'id' => 'amp-ads_2',
1753
  'type' => 'section',
1754
+ 'title' => esc_html__('Ad Performance', 'accelerated-mobile-pages'),
1755
  'indent' => true,
1756
  'layout_type' => 'accordion',
1757
  'accordion-open'=> 1,
1760
  array(
1761
  'id' => 'amp-ads_2',
1762
  'type' => 'section',
1763
+ 'title' => esc_html__('Ad Performance', 'accelerated-mobile-pages'),
1764
  'indent' => true,
1765
  'layout_type' => 'accordion',
1766
  'accordion-open'=> 1,
1768
  array(
1769
  'id' =>'ampforwp-ads-data-loading-strategy',
1770
  'type' => 'switch',
1771
+ 'title' => esc_html__('Optimize For Viewability', 'accelerated-mobile-pages'),
1772
  'default' => 0,
1773
+ 'tooltip-subtitle' => esc_html__('This will increase the loading speed of the Ads', 'accelerated-mobile-pages'),
1774
  'true' => 'Enabled',
1775
  'false' => 'Disabled',
1776
  ),
1777
  array(
1778
  'id' => 'amp-ads_3',
1779
  'type' => 'section',
1780
+ 'title' => esc_html__('General', 'accelerated-mobile-pages'),
1781
  'indent' => true,
1782
  'layout_type' => 'accordion',
1783
  'accordion-open'=> 1,
1785
  array(
1786
  'id' =>'ampforwp-ads-sponsorship',
1787
  'type' => 'switch',
1788
+ 'title' => esc_html__('Sponsorship Label', 'accelerated-mobile-pages'),
1789
  'default' => 0,
1790
  'true' => 'Enabled',
1791
  'false' => 'Disabled',
1794
  'id' =>'ampforwp-ads-sponsorship-label',
1795
  'type' => 'text',
1796
  'required' => array('ampforwp-ads-sponsorship', '=' , '1'),
1797
+ 'title' => esc_html__('Sponsorship Label Text', 'accelerated-mobile-pages'),
1798
  'class' => 'child_opt child_opt_arrow',
1799
  'default' => '',
1800
  'placeholder'=> 'Sponsored'
1818
  }
1819
  // SEO SECTION
1820
  Redux::setSection( $opt_name, array(
1821
+ 'title' => esc_html__( 'SEO', 'accelerated-mobile-pages' ),
1822
  'id' => 'amp-seo',
1823
  'subsection' => true,
1824
  'fields' => array(
1825
  array(
1826
  'id' => 'ampforwp-seo-general-section',
1827
  'type' => 'section',
1828
+ 'title' => esc_html__('General', 'accelerated-mobile-pages'),
1829
  'indent' => true,
1830
  'layout_type' => 'accordion',
1831
  'accordion-open'=> 1,
1833
  array(
1834
  'id' => 'ampforwp-seo-meta-description',
1835
  'type' => 'switch',
1836
+ 'title' => esc_html__('Meta Description', 'accelerated-mobile-pages'),
1837
+ 'tooltip-subtitle' => esc_html__('The meta tag that displays in head', 'accelerated-mobile-pages'),
1838
  'default' => 0
1839
  ),
1840
 
1841
  array(
1842
  'id' => 'ampforwp-seo-custom-additional-meta',
1843
  'type' => 'textarea',
1844
+ 'title' => esc_html__('Head Section', 'accelerated-mobile-pages'),
1845
+ 'tooltip-subtitle' => esc_html__('Adds additional Meta to the head section', 'accelerated-mobile-pages', 'accelerated-mobile-pages'),
1846
+ 'placeholder' => esc_html__('<!-- Paste your Additional HTML , that goes between <head> </head> tags -->','accelerated-mobile-pages')
1847
  ),
1848
  array(
1849
  'id' => 'ampforwp-seo-plugins-section',
1850
  'type' => 'section',
1851
+ 'title' => esc_html__('SEO Plugin Integration', 'accelerated-mobile-pages'),
1852
  'indent' => true,
1853
  'layout_type' => 'accordion',
1854
  'accordion-open'=> 1,
1856
  array(
1857
  'id' => 'ampforwp-seo-selection',
1858
  'type' => 'select',
1859
+ 'title' => esc_html__('Select SEO Plugin', 'accelerated-mobile-pages'),
1860
  'options' => array(
1861
  '1' => 'Yoast',
1862
  '2' => 'All in One SEO'
1867
  'class' => 'child_opt child_opt_arrow',
1868
  'id' => 'ampforwp-seo-yoast-meta',
1869
  'type' => 'switch',
1870
+ 'tooltip-subtitle' => esc_html__('Adds Social and Open Graph Meta Tags from Yoast', 'accelerated-mobile-pages'),
1871
+ 'title' => esc_html__( 'Meta Tags from Yoast', 'accelerated-mobile-pages' ),
1872
  'default' => '1',
1873
  'required' => array('ampforwp-seo-selection', '=' , '1'),
1874
  ),
1876
  'class' => 'child_opt',
1877
  'id' => 'ampforwp-seo-yoast-description',
1878
  'type' => 'switch',
1879
+ 'tooltip-subtitle' => esc_html__('Adds Yoast Custom description to ld+json for AMP page', 'accelerated-mobile-pages'),
1880
+ 'title' => esc_html__( 'Yoast Description in ld+json', 'accelerated-mobile-pages' ),
1881
  'default' => 0,
1882
  'required' => array('ampforwp-seo-selection', '=' , '1'),
1883
  ),
1885
  'class' => 'child_opt',
1886
  'id' => 'ampforwp-seo-yoast-canonical',
1887
  'type' => 'switch',
1888
+ 'tooltip-subtitle' => esc_html__('Pull Canonical from Yoast for AMP pages', 'accelerated-mobile-pages'),
1889
+ 'title' => esc_html__( 'Canonical from Yoast', 'accelerated-mobile-pages' ),
1890
  'default' => 0,
1891
  'required' => array('ampforwp-seo-selection', '=' , '1'),
1892
  ),
1894
  'id' => 'ampforwp-seo-aioseo',
1895
  'type' => 'info',
1896
  'style' => 'success',
1897
+ 'desc' => esc_html__("All in One SEO works out of the Box with our plugin. It deosn't requires any extra config except Canonicals.", 'accelerated-mobile-pages'),
1898
  'required' => array('ampforwp-seo-selection', '=', '2')
1899
  ),
1900
  array(
1901
  'class' => 'child_opt',
1902
  'id' => 'ampforwp-seo-aioseo-canonical',
1903
  'type' => 'switch',
1904
+ 'tooltip-subtitle' => esc_html__('Pull Canonical from All In One SEO for AMP pages', 'accelerated-mobile-pages'),
1905
+ 'title' =>esc_html__( 'Canonical from All In One SEO', 'accelerated-mobile-pages' ),
1906
  'default' => 0,
1907
  'required' => array('ampforwp-seo-selection', '=' , '2'),
1908
  ),
1909
  array(
1910
  'id' => 'ampforwp-seo-index-noindex-sub-section',
1911
  'type' => 'section',
1912
+ 'title' => esc_html__('Advanced Indexing', 'accelerated-mobile-pages'),
1913
  'indent' => true,
1914
  'layout_type' => 'accordion',
1915
  'accordion-open'=> 1,
1917
  array(
1918
  'id' => 'amp-inspection-tool',
1919
  'type' => 'switch',
1920
+ 'title' => esc_html__('URL Inspection Tool Compatibility', 'accelerated-mobile-pages'),
1921
+ 'tooltip-subtitle' => esc_html__("You can read about it <a target='_blank' href='https://webmasters.googleblog.com/2018/06/new-url-inspection-tool-more-in-search.html'>here</a>",'accelerated-mobile-pages'),
1922
  'default' => 1,
1923
  ),
1924
  array(
1925
  'id' => 'ampforwp-robots-archive-sub-pages-sitewide',
1926
  'type' => 'switch',
1927
+ 'title' => esc_html__('Archive subpages (sitewide)', 'accelerated-mobile-pages'),
1928
+ 'tooltip-subtitle' => esc_html__("Such as /page/2 so on and so forth",'accelerated-mobile-pages'),
1929
  'default' => 0,
1930
  'on' => 'index',
1931
  'off' => 'noindex',
1935
  array(
1936
  'id' => 'ampforwp-robots-archive-author-pages',
1937
  'type' => 'switch',
1938
+ 'title' => esc_html__('Author Archives', 'accelerated-mobile-pages'),
1939
+ 'tooltip-subtitle' => esc_html__("Enable it to set Indexing for Author Archives",'accelerated-mobile-pages'),
1940
  'default' => 1,
1941
  'on' => 'index',
1942
  'off' => 'noindex',
1946
  array(
1947
  'id' => 'ampforwp-robots-archive-date-pages',
1948
  'type' => 'switch',
1949
+ 'title' => esc_html__('Date Archives', 'accelerated-mobile-pages'),
1950
+ 'tooltip-subtitle' => esc_html__("Enable it to set Indexing for Date Archives",'accelerated-mobile-pages'),
1951
  'default' => 1,
1952
  'on' => 'index',
1953
  'off' => 'noindex',
1957
  array(
1958
  'id' => 'ampforwp-robots-archive-category-pages',
1959
  'type' => 'switch',
1960
+ 'title' => esc_html__('Categories', 'accelerated-mobile-pages'),
1961
+ 'tooltip-subtitle' => esc_html__("Enable it to set Indexing for Categories",'accelerated-mobile-pages'),
1962
  'default' => 1,
1963
  'on' => 'index',
1964
  'off' => 'noindex',
1968
  array(
1969
  'id' => 'ampforwp-robots-archive-tag-pages',
1970
  'type' => 'switch',
1971
+ 'title' => esc_html__('Tags', 'accelerated-mobile-pages'),
1972
+ 'tooltip-subtitle' => esc_html__("Enable it to set Indexing for Tags",'accelerated-mobile-pages'),
1973
  'default' => 1,
1974
  'on' => 'index',
1975
  'off' => 'noindex',
1986
 
1987
  // Performance SECTION
1988
  Redux::setSection( $opt_name, array(
1989
+ 'title' => esc_html__( 'PWA', 'accelerated-mobile-pages' ),
1990
  'id' => 'pwa-for-wp',
1991
  'desc' => '',
1992
  'subsection' => true,
1995
  array(
1996
  'id' => 'ampforwp-pwa-for-wp',
1997
  'type' => 'section',
1998
+ 'title' => esc_html__('Progressive Web App (PWA)', 'accelerated-mobile-pages'),
1999
  'indent' => true,
2000
  'layout_type' => 'accordion',
2001
  'accordion-open'=> 1,
2004
  array(
2005
  'id' => 'ampforwp_pwa_module',
2006
  'type' => 'raw',
2007
+ 'title' => esc_html__('PWA Support', 'accelerated-mobile-pages'),
2008
  'content' => (!is_plugin_active('pwa-for-wp/pwa-for-wp.php')?
2009
+ '<div class="install-now ampforwp-activation-call-module-upgrade button " id="ampforwp-pwa-activation-call" data-secure="'.wp_create_nonce('verify_module').'">Activate this Module</div>'
2010
  : '<div class="col-wrapper">
2011
  <a href="'.admin_url('admin.php?page=pwaforwp&reference=ampforwp').'"> <div class="ampforwp-recommendation-btn updated-message"><p>Go to PWA Settings</p></div> </a>
2012
  </div>
2021
 
2022
  // Performance SECTION
2023
  Redux::setSection( $opt_name, array(
2024
+ 'title' => esc_html__( 'Performance', 'accelerated-mobile-pages' ),
2025
  'id' => 'amp-performance',
2026
  'desc' => $cache_desc,
2027
  'subsection' => true,
2029
  array(
2030
  'id' => 'ampforwp-performance',
2031
  'type' => 'section',
2032
+ 'title' => esc_html__('Performance Enhancement', 'accelerated-mobile-pages'),
2033
  'indent' => true,
2034
  'layout_type' => 'accordion',
2035
  'accordion-open'=> 1,
2038
  array(
2039
  'id' => 'ampforwp_cache_minimize_mode',
2040
  'type' => 'switch',
2041
+ 'title' => esc_html__('Minify', 'accelerated-mobile-pages'),
2042
+ 'tooltip-subtitle' => esc_html__('Improve the Page Speed and Loading time with Minification option', 'accelerated-mobile-pages'),
2043
  'default' => 0
2044
  ),
2045
 
2062
 
2063
  // Analytics SECTION
2064
  Redux::setSection( $opt_name, array(
2065
+ 'title' => esc_html__('Analytics'),
2066
  // 'icon' => 'el el-th-large',
2067
  'subsection' => true,
2068
  'fields' =>
2070
  array(
2071
  'id' => 'amp-analytics-select-option',
2072
  'type' => 'select',
2073
+ 'title' => esc_html__( 'Analytics Type', 'accelerated-mobile-pages' ),
2074
  'class' => 'hide',
2075
+ 'tooltip-subtitle' => esc_html__( 'Select your Analytics provider.', 'accelerated-mobile-pages' ),
2076
  'options' => array(
2077
+ '1' => esc_html__('Google Analytics', 'accelerated-mobile-pages' ),
2078
+ '2' => esc_html__('Segment Analytics', 'accelerated-mobile-pages' ),
2079
+ '3' => esc_html__('Matomo (Piwik) Analytics', 'accelerated-mobile-pages' ),
2080
+ '4' => esc_html__('Quantcast Measurement', 'accelerated-mobile-pages' ),
2081
+ '5' => esc_html__('comScore', 'accelerated-mobile-pages' ),
2082
+ '6' => esc_html__('Effective Measure', 'accelerated-mobile-pages' ),
2083
+ '7' => esc_html__('StatCounter', 'accelerated-mobile-pages' ),
2084
+ '8' => esc_html__('Histats Analytics', 'accelerated-mobile-pages'),
2085
+ '9' => esc_html__('Yandex Metrika', 'accelerated-mobile-pages'),
2086
+ '10' => esc_html__('Chartbeat Analytics', 'accelerated-mobile-pages'),
2087
+ '11' => esc_html__('Alexa Metrics', 'accelerated-mobile-pages'),
2088
+ '12' => esc_html__('AFS Analytics', 'accelerated-mobile-pages'),
2089
+ '13' => esc_html__('Adobe Analytics', 'accelerated-mobile-pages'),
2090
  ),
2091
  'required' => array(
2092
  array('amp-use-gtm-option', '=' , '0'),
2096
  array(
2097
  'id' => 'ampforwp-analytics_1',
2098
  'type' => 'section',
2099
+ 'title' => esc_html__('Primary Analytic Providers', 'accelerated-mobile-pages'),
2100
  'indent' => true,
2101
  'layout_type' => 'accordion',
2102
  'accordion-open'=> 1,
2115
  'class' => 'child_opt child_opt_arrow',
2116
  'id' => 'ga-feild',
2117
  'type' => 'text',
2118
+ 'title' => esc_html__( 'Tracking ID', 'accelerated-mobile-pages' ),
2119
  'required' => array(
2120
  array('amp-use-gtm-option', '=' , '0'),
2121
  array('ampforwp-ga-switch', '=' , '1'),
2122
  array('ampforwp-ga-field-advance-switch', '=' , '0')
2123
  ),
2124
+ 'tooltip-subtitle' => esc_html__( 'Enter your Google Analytics ID. Example: UA-XXXXX-Y', 'accelerated-mobile-pages' ),
2125
  'default' => 'UA-XXXXX-Y',
2126
  ),
2127
 
2130
  'class' => 'child_opt',
2131
  'id' => 'ampforwp-ga-field-advance-switch',
2132
  'type' => 'switch',
2133
+ 'title' => esc_html__( 'Advanced Google Analytics', 'accelerated-mobile-pages' ),
2134
  'required' => array(
2135
  array('amp-use-gtm-option', '=' , '0'),
2136
  array('ampforwp-ga-switch', '=' , '1')
2141
  'class' => 'child_opt',
2142
  'id' => 'ampforwp-ga-field-anonymizeIP',
2143
  'type' => 'switch',
2144
+ 'title' => esc_html__( 'IP Anonymization', 'accelerated-mobile-pages' ),
2145
  'required' => array(
2146
  array('amp-use-gtm-option', '=' , '0'),
2147
  array('ampforwp-ga-switch', '=' , '1')
2152
  'class' => 'child_opt',
2153
  'id' => 'ampforwp-ga-field-advance',
2154
  'type' => 'ace_editor',
2155
+ 'title' => esc_html__('Analytics Code in JSON Format', 'accelerated-mobile-pages'),
2156
+ 'tooltip-subtitle' => esc_html__('Tutorial: <a href="https://ampforwp.com/tutorials/article/add-advanced-google-analytics-amp/" target="_blank">How To Add Advanced Google Analytics in AMP?</a>', 'accelerated-mobile-pages'),
2157
  'required' => array(
2158
  array('amp-use-gtm-option', '=' , '0'),
2159
  array('ampforwp-ga-switch', '=' , '1'),
2162
  'mode' => 'javascript',
2163
  'theme' => 'monokai',
2164
  'desc' => '',
2165
+ 'default' => esc_html__('{
2166
  "vars": {
2167
  "account": "UA-xxxxxxx-x" //Replace this with your Tracking ID
2168
  },
2181
  array(
2182
  'id' => 'amp-use-gtm-option',
2183
  'type' => 'switch',
2184
+ 'title' => esc_html__( 'Google Tag Manager', 'accelerated-mobile-pages' ),
2185
+ 'tooltip-subtitle' => esc_html__( 'Enable GTM Support in AMP.', 'accelerated-mobile-pages' ),
2186
  'default' => 0,
2187
  ),
2188
  array(
2189
  'class'=>'child_opt child_opt_arrow',
2190
  'id' =>'amp-gtm-id',
2191
  'type' => 'text',
2192
+ 'title' => esc_html__('Tag Manager ID (Container ID)','accelerated-mobile-pages'),
2193
  'default' => '',
2194
+ 'tooltip-subtitle' => esc_html__('Eg: GTM-5XXXXXP (<a href="https://ampforwp.com/tutorials/article/gtm-in-amp/" style="color:#f1f1f1;">Getting Started?</a>)','accelerated-mobile-pages'),
2195
  // 'validate' => 'not_empty',
2196
  'required' => array(
2197
  array('amp-use-gtm-option', '=' , '1')
2201
  'class' => 'child_opt',
2202
  'id' =>'amp-gtm-analytics-type',
2203
  'type' => 'text',
2204
+ 'title' => esc_html__('Analytics Type','accelerated-mobile-pages'),
2205
  'default' => '',
2206
+ 'desc' => esc_html__('Eg: googleanalytics','accelerated-mobile-pages'),
2207
  // 'validate' => 'not_empty',
2208
  'required' => array(
2209
  array('amp-use-gtm-option', '=' , '1')
2213
  'class'=>'child_opt',
2214
  'id' =>'amp-gtm-analytics-code',
2215
  'type' => 'text',
2216
+ 'title' => esc_html__('Analytics ID','accelerated-mobile-pages'),
2217
  'default' => '',
2218
  'tooltip-subtitle' => 'Eg: UA-XXXXXX-Y',
2219
  // 'validate' => 'not_empty',
2224
  'class' => 'child_opt',
2225
  'id' => 'ampforwp-gtm-field-anonymizeIP',
2226
  'type' => 'switch',
2227
+ 'title' => esc_html__( 'IP Anonymization', 'accelerated-mobile-pages' ),
2228
  'required' => array(
2229
  array('amp-use-gtm-option', '=' , '1'),
2230
  ),
2236
  'type' => 'info',
2237
  'style' => 'info',
2238
  'desc' => '<a href="https://ampforwp.com/tutorials/article/set-google-amp-client-id-api/" target="_blank">Check this Tutorial to set it up</a>',
2239
+ 'title' => esc_html__('Set up Google AMP Client ID API', 'accelerated-mobile-pages'),
2240
  'required' => array(
2241
  array('amp-use-gtm-option', '=' , '1'),
2242
  ),
2244
  array(
2245
  'id' => 'ampforwp-analytics_2',
2246
  'type' => 'section',
2247
+ 'title' => esc_html__('General Analytics Providers', 'accelerated-mobile-pages'),
2248
  'indent' => true,
2249
  'layout_type' => 'accordion',
2250
  'accordion-open'=> 1,
2252
  array(
2253
  'id' =>'amp-fb-pixel',
2254
  'type' => 'switch',
2255
+ 'title' => esc_html__('Facebook Pixel','accelerated-mobile-pages'),
2256
  'default' => 0,
2257
  ),
2258
  array(
2259
  'id' =>'amp-fb-pixel-id',
2260
  'type' => 'text',
2261
+ 'title' => esc_html__('Facebook Pixel ID','accelerated-mobile-pages'),
2262
  'default' => '',
2263
  'desc' => 'Example: 153246987501548',
2264
  'required' => array(
2273
  array(
2274
  'id' => 'sa-feild',
2275
  'type' => 'text',
2276
+ 'title' => esc_html__( 'Segment Analytics', 'accelerated-mobile-pages' ),
2277
+ 'tooltip-subtitle' => esc_html__( 'Enter your Segment Analytics Key.', 'accelerated-mobile-pages' ),
2278
  'required' => array(
2279
  array('ampforwp-Segment-switch', '=' , '1')
2280
  ),
2290
  array(
2291
  'id' => 'pa-feild',
2292
  'type' => 'text',
2293
+ 'title' => esc_html__( ' Matomo (Piwik) Analytics', 'accelerated-mobile-pages' ),
2294
  'required' => array(
2295
  array('ampforwp-Piwik-switch', '=' , '1')
2296
  ),
2297
+ 'desc' => esc_html__( 'Example: https://piwik.example.org/piwik.php?idsite=YOUR_SITE_ID&rec=1&action_name=TITLE&urlref=DOCUMENT_REFERRER&url=CANONICAL_URL&rand=RANDOM', 'accelerated-mobile-pages' ),
2298
+ 'tooltip-subtitle' => esc_html__('Enter your Matomo (Piwik) Analytics URL.', 'accelerated-mobile-pages' ),
2299
  'default' => '#',
2300
  ),
2301
  // Quantcast
2308
  array(
2309
  'id' =>'amp-quantcast-analytics-code',
2310
  'type' => 'text',
2311
+ 'title' => esc_html__('p-code','accelerated-mobile-pages'),
2312
  'default' => '',
2313
  'required' => array(
2314
  array('ampforwp-Quantcast-switch', '=' , '1')),
2323
  array(
2324
  'id' =>'amp-comscore-analytics-code-c1',
2325
  'type' => 'text',
2326
+ 'title' => esc_html__('C1','accelerated-mobile-pages'),
2327
  'default' => 1,
2328
  'required' => array(
2329
  array('ampforwp-comScore-switch', '=' , '1')),
2331
  array(
2332
  'id' =>'amp-comscore-analytics-code-c2',
2333
  'type' => 'text',
2334
+ 'title' => esc_html__('C2','accelerated-mobile-pages'),
2335
  'default' => '',
2336
  'required' => array(
2337
  array('ampforwp-comScore-switch', '=' , '1')),
2346
  array(
2347
  'id' => 'eam-feild',
2348
  'type' => 'text',
2349
+ 'title' => esc_html__( 'Effective Measure Analytics', 'accelerated-mobile-pages' ),
2350
  'required' => array(
2351
  array('ampforwp-Effective-switch', '=' , '1')
2352
  ),
2353
+ 'desc' => esc_html__( 'Example: https://s.effectivemeasure.net/d/6/i?pu=CANONICAL_URL&ru=DOCUMENT_REFERRER&rnd=RANDOM', 'accelerated-mobile-pages' ),
2354
+ 'tooltip-subtitle' => esc_html__('Enter your Effective Measure URL.', 'accelerated-mobile-pages' ),
2355
  'default' => '#',
2356
  ),
2357
  // StatCounter
2364
  array(
2365
  'id' => 'sc-feild',
2366
  'type' => 'text',
2367
+ 'title' => esc_html__( 'StatCounter', 'accelerated-mobile-pages' ),
2368
  'required' => array(
2369
  array('ampforwp-StatCounter-switch', '=' , '1')
2370
  ),
2371
+ 'desc' => esc_html__( 'Example: https://c.statcounter.com/PROJECT_ID/0/SECURITY_CODE/1/', 'accelerated-mobile-pages' ),
2372
+ 'tooltip-subtitle' => esc_html__('Enter your StatCounter URL.', 'accelerated-mobile-pages' ),
2373
  'default' => '#',
2374
  ),
2375
  // Histats Analytics
2382
  array(
2383
  'id' => 'histats-feild',
2384
  'type' => 'text',
2385
+ 'title' => esc_html__( 'Histats Analytics', 'accelerated-mobile-pages' ),
2386
  'required' => array(
2387
  array('ampforwp-Histats-switch', '=' , '1')
2388
  ),
2389
+ 'tooltip-subtitle' => esc_html__( 'Enter your Histats Analytics ID.', 'accelerated-mobile-pages' ),
2390
  'desc' => 'Tutorial: <a href="https://ampforwp.com/tutorials/how-to-get-histats-analytics-id/">How to get Histats Analytics ID for AMP?</a>',
2391
  'default' => '',
2392
  ),
2400
  array(
2401
  'id' =>'amp-Yandex-Metrika-analytics-code',
2402
  'type' => 'text',
2403
+ 'title' => esc_html__('Yandex Metrika Analytics ID','accelerated-mobile-pages'),
2404
  'default' => '',
2405
  'required' => array(
2406
  array('ampforwp-Yandex-switch', '=' , '1')),
2407
+ 'tooltip-subtitle' => esc_html__( 'Enter your Counter ID.', 'accelerated-mobile-pages' ),
2408
  ),
2409
  // Chartbeat Analytics
2410
  array(
2417
  array(
2418
  'id' =>'amp-Chartbeat-analytics-code',
2419
  'type' => 'text',
2420
+ 'title' => esc_html__('Chartbeat Analytics ID','accelerated-mobile-pages'),
2421
  'default' => '',
2422
  'required' => array(
2423
  array('ampforwp-Chartbeat-switch', '=' , '1')),
2424
+ 'tooltip-subtitle' => esc_html__( 'Enter your Account ID.', 'accelerated-mobile-pages' ),
2425
  ),
2426
  // Alexa Metrics
2427
  array(
2433
  array(
2434
  'id' => 'ampforwp-alexa-account',
2435
  'type' => 'text',
2436
+ 'title' => esc_html__( 'Alexa Metrics Account', 'accelerated-mobile-pages' ),
2437
  'required' => array(
2438
  array('ampforwp-Alexa-switch', '=' , '1')
2439
  ),
2440
+ 'tooltip-subtitle' => esc_html__( 'Enter Account Number given by Alexa Metrics', 'accelerated-mobile-pages' ),
2441
  'default' => '',
2442
  ),
2443
  array(
2444
  'id' => 'ampforwp-alexa-domain',
2445
  'type' => 'text',
2446
+ 'title' => esc_html__( 'Alexa Metrics Domain', 'accelerated-mobile-pages' ),
2447
  'required' => array(
2448
  array('ampforwp-Alexa-switch', '=' , '1')
2449
  ),
2450
+ 'tooltip-subtitle' => esc_html__( 'Enter the domain', 'accelerated-mobile-pages' ),
2451
  'default' => '',
2452
  ),
2453
  // AFS Analytics
2460
  array(
2461
  'id' => 'ampforwp-afs-siteid',
2462
  'type' => 'text',
2463
+ 'title' => esc_html__( 'Website ID', 'accelerated-mobile-pages' ),
2464
  'required' => array(
2465
  array('ampforwp-afs-analytics-switch', '=' , '1')
2466
  ),
2467
+ 'tooltip-subtitle' => esc_html__( 'Enter the Website ID', 'accelerated-mobile-pages' ),
2468
  'default' => '',
2469
  'desc' => 'example: 00000003',
2470
  ),
2481
  array(
2482
  'id' => 'ampforwp-adobe-host',
2483
  'type' => 'text',
2484
+ 'title' => esc_html__( 'Host Name', 'accelerated-mobile-pages' ),
2485
  'required' => array(
2486
  array('amp-use-gtm-option', '=' , '0'),
2487
  array('ampforwp-adobe-analytics-switch', '=' , '1')
2488
  ),
2489
+ 'tooltip-subtitle' => esc_html__( 'Enter the Website domain', 'accelerated-mobile-pages' ),
2490
  'default' => '',
2491
  'desc' => 'example: metrics.example.com',
2492
  ),
2493
  array(
2494
  'id' => 'ampforwp-adobe-reportsuiteid',
2495
  'type' => 'text',
2496
+ 'title' => esc_html__( 'ReportSuite ID', 'accelerated-mobile-pages' ),
2497
  'required' => array(
2498
  array('amp-use-gtm-option', '=' , '0'),
2499
  array('ampforwp-adobe-analytics-switch', '=' , '1')
2500
  ),
2501
+ 'tooltip-subtitle' => esc_html__( 'Enter the ReportSuite ID', 'accelerated-mobile-pages' ),
2502
  'default' => '',
2503
  'desc' => 'example: 00000003',
2504
  ),
2538
  $custom_fields[] = array(
2539
  'id' => 'ampforwp-sd-type-'. $post_type,
2540
  'type' => 'select',
2541
+ 'title' => esc_html__($post_type, 'accelerated-mobile-pages'),
2542
+ 'tooltip-subtitle' => esc_html__('Select the Structured Data Type for '.$post_type, 'accelerated-mobile-pages'),
2543
  'options' => ampforwp_get_sd_types(),
2544
  'default' => 'BlogPosting',
2545
  );
2567
  $fields[] = array(
2568
  'id' => 'ampforwp-sd_modules_section',
2569
  'type' => 'section',
2570
+ 'title' => esc_html__('Structured Data has been Improved!', 'accelerated-mobile-pages'),
2571
  'indent' => true,
2572
  'layout_type' => 'accordion',
2573
  'accordion-open'=> 1,
2589
  <div class="col-1">
2590
  '.(!is_plugin_active('schema-and-structured-data-for-wp/structured-data-for-wp.php')?
2591
  '
2592
+ <div class="install-now ampforwp-activation-call-module-upgrade button " id="ampforwp-structure-data-activation-call" data-secure="'.wp_create_nonce('verify_module').'">
2593
  <p>Upgrade for Free</p>
2594
  </div>' :
2595
  '<a href="'.admin_url('admin.php?page=structured_data_options&tab=general&reference=ampforwp').'"><div class="ampforwp-recommendation-btn updated-message"><p>Go to Structure Data settings</p></div></a>'
2601
 
2602
  );
2603
 
 
 
 
 
2604
  if( !is_plugin_active('schema-and-structured-data-for-wp/structured-data-for-wp.php') ) {
2605
  $fields[] = array(
2606
  'id' => 'ampforwp-sd_1',
2607
  'type' => 'section',
2608
+ 'title' => esc_html__('Schema & Structured Data', 'accelerated-mobile-pages'),
2609
  'indent' => true,
2610
  'layout_type' => 'accordion',
2611
  'accordion-open'=> 1,
2613
  $fields[] = array(
2614
  'id' => 'ampforwp-sd-type-posts',
2615
  'type' => 'select',
2616
+ 'title' => esc_html__('Posts', 'accelerated-mobile-pages'),
2617
+ 'tooltip-subtitle' => esc_html__('Select the Structured Data Type for Posts', 'accelerated-mobile-pages'),
2618
  'options' => ampforwp_get_sd_types(),
2619
  'default' => 'BlogPosting',
2620
  );
2621
  $fields[] = array(
2622
  'id' => 'ampforwp-sd-type-pages',
2623
  'type' => 'select',
2624
+ 'title' => esc_html__('Pages', 'accelerated-mobile-pages'),
2625
+ 'tooltip-subtitle' => esc_html__('Select the Structured Data Type for Pages', 'accelerated-mobile-pages'),
2626
  'options' => ampforwp_get_sd_types(),
2627
  'default' => 'BlogPosting',
2628
  );
2629
  $fields[] = array(
2630
  'id' => 'ampforwp-sd_2',
2631
  'type' => 'section',
2632
+ 'title' => esc_html__('Default Values Setup', 'accelerated-mobile-pages'),
2633
  'indent' => true,
2634
  'layout_type' => 'accordion',
2635
  'accordion-open'=> 1,
2639
  'id' => 'amp-structured-data-logo',
2640
  'type' => 'media',
2641
  'url' => true,
2642
+ 'title' => esc_html__('Default Structured Data Logo', 'accelerated-mobile-pages'),
2643
+ 'tooltip-subtitle' => esc_html__('Upload the logo you want to show in Google Structured Data. ', 'accelerated-mobile-pages'),
2644
  );
2645
  $fields[] = array(
2646
  'id' => 'ampforwp-sd-logo-dimensions',
2647
+ 'title' => esc_html__('Custom Logo Size', 'accelerated-mobile-pages'),
2648
  'type' => 'switch',
2649
  'default' => 0,
2650
  );
2652
  'class'=>'child_opt child_opt_arrow',
2653
  'id' => 'ampforwp-sd-logo-width',
2654
  'type' => 'text',
2655
+ 'title' => esc_html__('Logo Width', 'accelerated-mobile-pages'),
2656
+ 'tooltip-subtitle' => esc_html__('Default width is 600 pixels', 'accelerated-mobile-pages'),
2657
  'default' => '600',
2658
  'required'=>array('ampforwp-sd-logo-dimensions','=','1'),
2659
  );
2661
  'class'=>'child_opt',
2662
  'id' => 'ampforwp-sd-logo-height',
2663
  'type' => 'text',
2664
+ 'title' => esc_html__('Logo Height', 'accelerated-mobile-pages'),
2665
+ 'tooltip-subtitle' => esc_html__('Default height is 60 pixels', 'accelerated-mobile-pages'),
2666
  'default' => '60',
2667
  'required'=>array('ampforwp-sd-logo-dimensions','=','1'),
2668
  );
2670
  'id' => 'amp-structured-data-placeholder-image',
2671
  'type' => 'media',
2672
  'url' => true,
2673
+ 'title' => esc_html__('Default Post Image', 'accelerated-mobile-pages'),
2674
+ 'tooltip-subtitle' => esc_html__('Upload the Image you want to show as Placeholder Image.', 'accelerated-mobile-pages'),
2675
+ 'placeholder' => esc_html__('when there is no featured image set in the post','accelerated-mobile-pages'),
2676
  );
2677
  $fields[] = array(
2678
  'id' => 'amp-structured-data-placeholder-image-width',
2679
+ 'title' => esc_html__('Default Post Image Width', 'accelerated-mobile-pages'),
2680
  'type' => 'text',
2681
  'placeholder' => '550',
2682
+ 'tooltip-subtitle' => esc_html__('Please don\'t add "PX" in the image size.','accelerated-mobile-pages'),
2683
  'default' => '700'
2684
  );
2685
  $fields[] = array(
2686
  'id' => 'amp-structured-data-placeholder-image-height',
2687
+ 'title' => esc_html__('Default Post Image Height', 'accelerated-mobile-pages'),
2688
  'type' => 'text',
2689
  'placeholder' => '350',
2690
+ 'tooltip-subtitle' => esc_html__('Please don\'t add "PX" in the image size.','accelerated-mobile-pages'),
2691
  'default' => '550'
2692
  );
2693
  $fields[] = array(
2694
  'id' => 'amporwp-structured-data-video-thumb-url',
2695
  'type' => 'media',
2696
  'url' => true,
2697
+ 'title' => esc_html__('Default Thumbnail for VideoObject', 'accelerated-mobile-pages'),
2698
+ 'tooltip-subtitle' => esc_html__('Upload the Thumbnail you want to show as Video Thumbnail.', 'accelerated-mobile-pages'),
2699
+ 'placeholder' => esc_html__('When there is no thumbnail set for the video','accelerated-mobile-pages'),
2700
  );
2701
  }// is_plugin_active('schema-and-structured-data-for-wp/structured-data-for-wp.php') Closed
 
 
 
 
 
 
2702
 
2703
  return $fields;
2704
  }
2705
  }
2706
  // Structured Data
2707
  Redux::setSection( $opt_name, array(
2708
+ 'title' => esc_html__( 'Structured Data', 'accelerated-mobile-pages' ),
2709
  'id' => 'opt-structured-data',
2710
  'class' => 'ampforwp_new_features ',
2711
  'subsection' => true,
2716
 
2717
  // Notifications SECTION
2718
  Redux::setSection( $opt_name, array(
2719
+ 'title' => esc_html__( 'Notice Bar & GDPR', 'accelerated-mobile-pages' ),
2720
  'desc' => $cta_desc ,
2721
  'id' => 'amp-notifications',
2722
  'subsection' => true,
2724
  array(
2725
  'id' => 'ampforwp-notice_2',
2726
  'type' => 'section',
2727
+ 'title' => esc_html__('Notice Bar (Cookie Consent)', 'accelerated-mobile-pages'),
2728
  'indent' => true,
2729
  'layout_type' => 'accordion',
2730
  'accordion-open'=> 1,
2734
  array(
2735
  'id' =>'amp-enable-notifications',
2736
  'type' => 'switch',
2737
+ 'title' => esc_html__('Notifications', 'accelerated-mobile-pages'),
2738
  'default' => '',
2739
+ 'tooltip-subtitle' => esc_html__('Show notifications on all of your AMP pages for cookie purposes, or anything else.', 'accelerated-mobile-pages'),
2740
  'true' => 'Enabled',
2741
  'false' => 'Disabled',
2742
  'required' => array('amp-gdpr-compliance-switch', '=' , '0')
2744
  array(
2745
  'class' => 'child_opt child_opt_arrow',
2746
  'id' => 'amp-notification-text',
2747
+ 'title' => esc_html__('Notice Content', 'accelerated-mobile-pages'),
2748
  'type' => 'text',
2749
  'required' => array('amp-enable-notifications', '=' , '1'),
2750
+ 'default' => esc_html__('This website uses cookies.','accelerated-mobile-pages'),
2751
+ 'placeholder' => esc_html__('Enter Text here','accelerated-mobile-pages'),
2752
  ),
2753
  array(
2754
  'class' => 'child_opt',
2755
  'id' => 'amp-accept-button-text',
2756
+ 'title' => esc_html__('Button Text', 'accelerated-mobile-pages'),
2757
  'type' => 'text',
2758
  'required' => array('amp-enable-notifications', '=' , '1'),
2759
+ 'default' => esc_html__('Accept','accelerated-mobile-pages'),
2760
+ 'placeholder' => esc_html__('Enter Text here','accelerated-mobile-pages'),
2761
  ),
2762
 
2763
  array(
2764
  'id' => 'ampforwp-notice_1',
2765
  'type' => 'section',
2766
+ 'title' => esc_html__('GDPR (General Data Protection Regulation)', 'accelerated-mobile-pages'),
2767
  'indent' => true,
2768
  'layout_type' => 'accordion',
2769
  'accordion-open'=> 1,
2771
  array(
2772
  'id' =>'amp-gdpr-compliance-switch',
2773
  'type' => 'switch',
2774
+ 'title' => esc_html__('GDPR Compliancy', 'accelerated-mobile-pages'),
2775
  'default' => 0,
2776
  'tooltip-subtitle' => 'Currently It is available to only EEA countries. Check <a href="https://github.com/ampproject/amphtml/blob/master/extensions/amp-geo/0.1/amp-geo-presets.js" target="_blank">here</a> for the list of EEA Countries'
2777
  ),
2778
  array(
2779
  'id' => 'gdpr-type',
2780
+ 'title' => esc_html__('GDPR Designs', 'accelerated-mobile-pages'),
2781
  'type' => 'image_select',
2782
  'options'=> array(
2783
  '1' => array(
2796
  'class' => 'child_opt child_opt_arrow',
2797
  'id' =>'amp-gdpr-compliance-headline-text',
2798
  'type' => 'text',
2799
+ 'title' => esc_html__('Headline Text', 'accelerated-mobile-pages'),
2800
  'default' => 'Headline',
2801
  'required' => array('amp-gdpr-compliance-switch', '=' , '1'),
2802
  ),
2805
  'tooltip-subtitle' => 'This is the message that you want to share with the audience',
2806
  'id' =>'amp-gdpr-compliance-textarea',
2807
  'type' => 'textarea',
2808
+ 'title' => esc_html__('Message to Visitor', 'accelerated-mobile-pages'),
2809
+ 'subtitle' => esc_html__('', 'accelerated-mobile-pages'),
2810
  'default' => '',
2811
  'required' => array( array('amp-gdpr-compliance-switch', '=' , '1', ), array('gdpr-type', '=' , '1' ) ),
2812
  ),
2815
  'class' => 'child_opt',
2816
  'id' =>'amp-gdpr-compliance-accept-text',
2817
  'type' => 'text',
2818
+ 'title' => esc_html__('Accept Button Text', 'accelerated-mobile-pages'),
2819
  'default' => 'Accept',
2820
  'required' => array('amp-gdpr-compliance-switch', '=' , '1'),
2821
  ),
2823
  'class' => 'child_opt',
2824
  'id' =>'amp-gdpr-compliance-reject-text',
2825
  'type' => 'text',
2826
+ 'title' => esc_html__('Reject Button Text', 'accelerated-mobile-pages'),
2827
  'default' => 'Reject',
2828
  'required' => array('amp-gdpr-compliance-switch', '=' , '1'),
2829
  ),
2831
  'class' => 'child_opt',
2832
  'id' =>'amp-gdpr-compliance-settings-text',
2833
  'type' => 'text',
2834
+ 'title' => esc_html__('Settings Button Text', 'accelerated-mobile-pages'),
2835
  'default' => 'Privacy Settings',
2836
  'required' => array('amp-gdpr-compliance-switch', '=' , '1'),
2837
  ),
2839
  'class' => 'child_opt',
2840
  'id' =>'amp-gdpr-compliance-for-more-privacy-info',
2841
  'type' => 'text',
2842
+ 'title' => esc_html__('For More information', 'accelerated-mobile-pages'),
2843
+ 'tooltip-subtitle' => esc_html__('text before the privacy page button.', 'accelerated-mobile-pages'),
2844
  'default' => 'For More information about Privacy',
2845
  'required' => array( array('amp-gdpr-compliance-switch', '=' , '1', ), array('gdpr-type', '=' , '1' ) ),
2846
  ),
2849
  'class' => 'child_opt',
2850
  'id' =>'amp-gdpr-compliance-select-privacy-page',
2851
  'type' => 'select',
2852
+ 'title' => esc_html__('Select the Privacy Page', 'accelerated-mobile-pages'),
2853
+ 'tooltip-subtitle' => esc_html__('Select the Privacy Page to display.', 'accelerated-mobile-pages'),
2854
  'default' => 0,
2855
  'data' => 'pages',
2856
  'required' => array('amp-gdpr-compliance-switch', '=' , '1'),
2859
  'class' => 'child_opt',
2860
  'id' =>'amp-gdpr-compliance-privacy-page-button-text',
2861
  'type' => 'text',
2862
+ 'title' => esc_html__('Privacy Page Button Text', 'accelerated-mobile-pages'),
2863
  'default' => 'Click Here',
2864
  'required' => array('amp-gdpr-compliance-switch', '=' , '1'),
2865
  ),
2867
  array(
2868
  'id' => 'ampforwp-notice_popup',
2869
  'type' => 'section',
2870
+ 'title' => esc_html__('PopUp for AMP', 'accelerated-mobile-pages'),
2871
  'indent' => true,
2872
  'layout_type' => 'accordion',
2873
  'accordion-open'=> 1,
2884
 
2885
  // Push Notifications section
2886
  Redux::setSection( $opt_name, array(
2887
+ 'title' => esc_html__( 'Push Notifications', 'accelerated-mobile-pages' ),
2888
  // 'icon' => 'el el-podcast',
2889
  'id' => 'ampforwp-push-notifications',
2890
  'desc' => " ",
2894
  array(
2895
  'id' => 'ampforwp-pushnot-1',
2896
  'type' => 'section',
2897
+ 'title' => esc_html__('Push Notification Support', 'accelerated-mobile-pages'),
2898
  'indent' => true,
2899
  'layout_type' => 'accordion',
2900
  'accordion-open'=> 1,
2920
  array(
2921
  'id' => 'ampforwp-onesignal-positioning',
2922
  'type' => 'section',
2923
+ 'title' => esc_html__('Positioning', 'accelerated-mobile-pages'),
2924
  'required' => array(
2925
  array( 'ampforwp-web-push-onesignal', '=' , 1 ),
2926
  array( 'amp-use-pot', '=' , 0 )
2952
  array(
2953
  'id' => 'translation',
2954
  'type' => 'section',
2955
+ 'title' => esc_html__('Translation', 'accelerated-mobile-pages'),
2956
  'indent' => true,
2957
  'layout_type' => 'accordion',
2958
  'accordion-open'=> 1,
2960
  array(
2961
  'id' => 'ampforwp-onesignal-translator-subscribe',
2962
  'type' => 'text',
2963
+ 'title' => esc_html__('Subscribe', 'accelerated-mobile-pages'),
2964
+ 'default' => esc_html__('Subscribe to updates','accelerated-mobile-pages'),
2965
+ 'placeholder'=>esc_html__('Add some text','accelerated-mobile-pages'),
2966
  ),
2967
  array(
2968
  'id' => 'ampforwp-onesignal-translator-unsubscribe',
2969
  'type' => 'text',
2970
+ 'title' => esc_html__('Unsubsribe', 'accelerated-mobile-pages'),
2971
+ 'default' => esc_html__('Unsubscribe from updates','accelerated-mobile-pages'),
2972
+ 'placeholder'=>esc_html__('Add some text','accelerated-mobile-pages'),
2973
  ),
2974
  array(
2975
  'id' => 'ampforwp-onesignal-exper',
2976
  'type' => 'section',
2977
+ 'title' => esc_html__('Experimental', 'accelerated-mobile-pages'),
2978
  'required' => array(
2979
  array( 'ampforwp-web-push-onesignal', '=' , 1 ),
2980
  array( 'amp-use-pot', '=' , 0 )
2997
  'id' => 'ampforwp-onesignal-subdomain',
2998
  'type' => 'text',
2999
  'title' => 'Subdomain',
3000
+ 'desc' => esc_html__('Example: ampforwp', 'accelerated-mobile-pages'),
3001
  'required' => array(
3002
  array('ampforwp-web-push-onesignal', '=' , '1'),
3003
  array('ampforwp-onesignal-http-site', '=','1')),
3009
  $forms_support[] = array(
3010
  'id' => 'ampforwp-cfs_1',
3011
  'type' => 'section',
3012
+ 'title' => esc_html__('CF7 Compatibility', 'accelerated-mobile-pages'),
3013
  'indent' => true,
3014
  'layout_type' => 'accordion',
3015
  'accordion-open'=> 1,
3017
  $forms_support[] = array(
3018
  'id' =>'amp-enable-contactform',
3019
  'type' => 'switch',
3020
+ 'title' => esc_html__('Contact Form 7 Support', 'accelerated-mobile-pages'),
3021
  'default' => '',
3022
  'true' => 'Enabled',
3023
  'false' => 'Disabled',
3036
  $forms_support[] = array(
3037
  'id' => 'ampforwp-cfs_2',
3038
  'type' => 'section',
3039
+ 'title' => esc_html__('Gravity Forms Compatibility', 'accelerated-mobile-pages'),
3040
  'indent' => true,
3041
  'layout_type' => 'accordion',
3042
  'accordion-open'=> 1,
3044
  $forms_support[] = array(
3045
  'id' =>'amp-enable-gravityforms_support',
3046
  'type' => 'switch',
3047
+ 'title' => esc_html__('Gravity Forms Support', 'accelerated-mobile-pages'),
3048
  'default' => '',
3049
  'true' => 'Enabled',
3050
  'false' => 'Disabled',
3062
  $forms_support[] = array(
3063
  'id' => 'ampforwp-ninja-forms',
3064
  'type' => 'section',
3065
+ 'title' => esc_html__('Ninja Forms Compatibility', 'accelerated-mobile-pages'),
3066
  'indent' => true,
3067
  'layout_type' => 'accordion',
3068
  'accordion-open'=> 1,
3070
  $forms_support[] = array(
3071
  'id' =>'amp-enable-ninja-forms-support',
3072
  'type' => 'switch',
3073
+ 'title' => esc_html__('Ninja Forms Support', 'accelerated-mobile-pages'),
3074
  'default' => '',
3075
  'true' => 'Enabled',
3076
  'false' => 'Disabled',
3087
 
3088
  // Contact Form SECTION
3089
  Redux::setSection( $opt_name, array(
3090
+ 'title' => esc_html__( 'Contact Form', 'accelerated-mobile-pages' ),
3091
  // 'desc' => 'Contact forms will automatically be converted into AMP compatible.',
3092
  'id' => 'amp-contact',
3093
  'subsection' => true,
3097
 
3098
  // comments
3099
  Redux::setSection( $opt_name, array(
3100
+ 'title' => esc_html__( 'Comments', 'accelerated-mobile-pages' ),
3101
  'desc' => $comment_desc,
3102
  'id' => 'disqus-comments',
3103
  'subsection' => true,
3105
  array(
3106
  'id' => 'ampforwp-display-comments',
3107
  'type' => 'section',
3108
+ 'title' => esc_html__('Display', 'accelerated-mobile-pages'),
3109
  'indent' => true,
3110
  'layout_type' => 'accordion',
3111
  'accordion-open'=> 1,
3113
  array(
3114
  'id' => 'ampforwp-display-on-pages',
3115
  'type' => 'switch',
3116
+ 'title' => esc_html__('Display on Pages', 'accelerated-mobile-pages'),
3117
+ 'tooltip-subtitle' => esc_html__('Enable/Disable comments on pages using this switch.', 'accelerated-mobile-pages'),
3118
  'default' => 1
3119
  ),
3120
  array(
3121
  'id' => 'ampforwp-display-on-posts',
3122
  'type' => 'switch',
3123
+ 'title' => esc_html__('Display on Posts', 'accelerated-mobile-pages'),
3124
+ 'tooltip-subtitle' => esc_html__('Enable/Disable comments on posts using this switch.', 'accelerated-mobile-pages'),
3125
  'default' => 1
3126
  ),
3127
 
3128
  array(
3129
  'id' => 'ampforwp-comments',
3130
  'type' => 'section',
3131
+ 'title' => esc_html__('Discussion', 'accelerated-mobile-pages'),
3132
  'indent' => true,
3133
  'layout_type' => 'accordion',
3134
  'accordion-open'=> 1,
3135
  ),
3136
  array(
3137
+ 'title' =>esc_html__('WordPress Comments','accelerated-mobile-pages'),
3138
  'id' => 'wordpress-comments-support',
3139
+ 'tooltip-subtitle' => esc_html__('Enable/Disable WordPress comments using this switch.', 'accelerated-mobile-pages'),
3140
  'type' => 'switch',
3141
  'default' => 1,
3142
  ),
3144
  'class' => 'child_opt child_opt_arrow',
3145
  'id' => 'ampforwp-number-of-comments',
3146
  'type' => 'text',
3147
+ 'tooltip-subtitle' => esc_html__('This refers to the normal comments','accelerated-mobile-pages'),
3148
+ 'title' => esc_html__('No of Comments', 'accelerated-mobile-pages'),
3149
  'default' => 10,
3150
  'required' => array('wordpress-comments-support' , '=' , 1
3151
  ),
3154
  'class' => 'child_opt child_opt_arrow',
3155
  'id' => 'ampforwp-display-avatar',
3156
  'type' => 'switch',
3157
+ 'title' => esc_html__('Display on User Avatar', 'accelerated-mobile-pages'),
3158
+ 'tooltip-subtitle' => esc_html__('Enable/Disable user Avatar.', 'accelerated-mobile-pages'),
3159
  'default' => 1,
3160
  'required' => array('wordpress-comments-support' , '=' , 1
3161
  ),
3163
  array(
3164
  'id' => 'ampforwp-disqus-comments-support',
3165
  'type' => 'switch',
3166
+ 'title' => esc_html__('Disqus', 'accelerated-mobile-pages'),
3167
+ 'tooltip-subtitle' => esc_html__('Enable/Disable Disqus comments using this switch.', 'accelerated-mobile-pages'),
3168
  'default' => 0
3169
  ),
3170
  array(
3171
  'class' => 'child_opt child_opt_arrow',
3172
  'id' => 'ampforwp-disqus-comments-name',
3173
  'type' => 'text',
3174
+ 'title' => esc_html__('Disqus Name', 'accelerated-mobile-pages'),
3175
+ 'tooltip-subtitle' => esc_html__('Eg: https://xyz.disqus.com', 'accelerated-mobile-pages'),
3176
  'required' => array('ampforwp-disqus-comments-support', '=' , '1'),
3177
  'default' => ''
3178
  ),
3181
  'class' => 'child_opt',
3182
  'id' => 'ampforwp-disqus-host-position',
3183
  'type' => 'switch',
3184
+ 'title' => esc_html__('Host on AMPforWP API', 'accelerated-mobile-pages'),
3185
+ 'tooltip-subtitle' => esc_html__('Use AMPforWP secure servers to serve Comments file. Recommended if your site is non HTTPS', 'accelerated-mobile-pages'),
3186
  'default' => 1,
3187
  'required' => array('ampforwp-disqus-comments-support', '=' , '1'),
3188
  ),
3191
  'class' => 'child_opt',
3192
  'id' => 'ampforwp-disqus-host-file',
3193
  'type' => 'text',
3194
+ 'title' => esc_html__('Disqus Host File', 'accelerated-mobile-pages'),
3195
  'desc' => '<a href="https://ampforwp.com/host-disqus-comments/" target="_blank"> Click here to know, How to Setup Disqus Host file on your servers </a>',
3196
+ 'tooltip-subtitle' => esc_html__('Enter the URL of host file', 'accelerated-mobile-pages'),
3197
  'placeholder' => 'https://comments.example.com/disqus.php',
3198
  'required' => array('ampforwp-disqus-host-position', '=' , '0'),
3199
  ),
3200
  array(
3201
  'id' => 'ampforwp-disqus-layout',
3202
+ 'title' => esc_html__('Disqus Layout', 'accelerated-mobile-pages'),
3203
  'type' => 'select',
3204
  'options' => array(
3205
  'fixed' => 'Fixed',
3212
  array(
3213
  'id' => 'ampforwp-disqus-height',
3214
  'type' => 'text',
3215
+ 'title' => esc_html__('Disqus Iframe Height', 'accelerated-mobile-pages'),
3216
  'placeholder' => 'Enter the height',
3217
  'default' => '420',
3218
  'required' => array('ampforwp-disqus-layout', '=' , 'fixed'),
3220
  array(
3221
  'id' => 'ampforwp-facebook-comments-support',
3222
  'type' => 'switch',
3223
+ 'title' => esc_html__('Facebook Comments', 'accelerated-mobile-pages'),
3224
+ 'tooltip-subtitle' => esc_html__('Enable/Disable Facebook comments using this switch.', 'accelerated-mobile-pages'),
3225
  'default' => 0,
3226
  ),
3227
  array(
3228
  'class' => 'child_opt child_opt_arrow',
3229
  'id' => 'ampforwp-number-of-fb-no-of-comments',
3230
  'type' => 'text',
3231
+ 'tooltip-subtitle' => esc_html__('Enter the number of comments','accelerated-mobile-pages'),
3232
+ 'title' => esc_html__('No of Comments', 'accelerated-mobile-pages'),
3233
  'default' => 10,
3234
  'required' => array(
3235
  array('ampforwp-facebook-comments-support', '=' , 1),
3239
  'class' => 'child_opt child_opt_arrow',
3240
  'id' => 'ampforwp-fb-comments-lang',
3241
  'type' => 'text',
3242
+ 'tooltip-subtitle' => esc_html__('Enter the Language code','accelerated-mobile-pages'),
3243
+ 'title' => esc_html__('Language', 'accelerated-mobile-pages'),
3244
  'desc' => '<a href="https://developers.facebook.com/docs/internationalization" target="_blank">Locales and Languages Supported by Facebook </a>',
3245
  'default' => get_locale(),
3246
  'required' => array(
3251
  array(
3252
  'id' => 'ampforwp-vuukle-comments-support',
3253
  'type' => 'switch',
3254
+ 'title' => esc_html__('Vuukle Comments', 'accelerated-mobile-pages'),
3255
+ 'tooltip-subtitle' => esc_html__('Enable/Disable Vuukle comments using this switch.', 'accelerated-mobile-pages'),
3256
  'default' => 0,
3257
  ),
3258
  array(
3259
  'class' => 'child_opt child_opt_arrow',
3260
  'id' => 'ampforwp-vuukle-comments-apiKey',
3261
  'type' => 'text',
3262
+ 'tooltip-subtitle' => esc_html__('Enter the API key of Vuukle','accelerated-mobile-pages'),
3263
+ 'title' => esc_html__('API Key', 'accelerated-mobile-pages'),
3264
  'default' => '',
3265
  'desc' => "For Example xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
3266
  'required' => array(
3271
  array(
3272
  'id' => 'ampforwp-spotim-comments-support',
3273
  'type' => 'switch',
3274
+ 'title' => esc_html__('Spot.IM Conversation', 'accelerated-mobile-pages'),
3275
+ 'tooltip-subtitle' => esc_html__('Enable/Disable Spot.IM Conversation using this switch.', 'accelerated-mobile-pages'),
3276
  'default' => 0,
3277
  ),
3278
  array(
3279
  'class' => 'child_opt child_opt_arrow',
3280
  'id' => 'ampforwp-spotim-comments-apiKey',
3281
  'type' => 'text',
3282
+ 'tooltip-subtitle' => esc_html__('Enter the SPOT_ID of Spot.IM','accelerated-mobile-pages'),
3283
+ 'title' => esc_html__('SPOT ID', 'accelerated-mobile-pages'),
3284
  'default' => '',
3285
  'desc' => "For Example xxxxxxxx-xxxx-xxxx-xxxx",
3286
  'required' => array(
3291
  )
3292
  ) );
3293
 
3294
+ function ampforwp_fb_instant_article() {
3295
  $feedname = '';
3296
  $fb_instant_article_feed = '';
3297
  $input = '';
3298
 
3299
  $feedname = 'instant_articles';
3300
  $fb_instant_article_feed = trailingslashit( site_url() ).$feedname ;
3301
+ $input = '<a href=" '. esc_url($fb_instant_article_feed) . '" target="_blank">' . esc_url( $fb_instant_article_feed ). '</a>' ;
3302
 
3303
  return strip_tags($input, '<a>');
3304
  }
3305
 
3306
  // Facebook Instant Articles
3307
  Redux::setSection( $opt_name, array(
3308
+ 'title' => esc_html__( 'Instant Articles', 'accelerated-mobile-pages' ),
3309
  'id' => 'fb-instant-article',
3310
  'subsection' => true,
3311
  'fields' => array(
3312
  array(
3313
  'id' => 'ampforwp-fbia_1',
3314
  'type' => 'section',
3315
+ 'title' => esc_html__('Facebook Instant Articles Setup', 'accelerated-mobile-pages'),
3316
  'indent' => true,
3317
  'layout_type' => 'accordion',
3318
  'accordion-open'=> 1,
3320
  array(
3321
  'id' =>'fb-instant-article-switch',
3322
  'type' => 'switch',
3323
+ 'title' => esc_html__('Instant Articles', 'accelerated-mobile-pages'),
3324
  'default' => 0,
3325
  'true' => 'true',
3326
  'false' => 'false',
3327
+ 'desc' => esc_html__('Re-Save permalink when you enable this option, please have a look', 'accelerated-mobile-pages').' <a href="https://ampforwp.com/flush-rewrite-urls/">'.esc_html__('here', 'accelerated-mobile-pages').'</a> '.esc_html__('on how to do it', 'accelerated-mobile-pages'),
3328
  ),
3329
  array(
3330
  'id' => 'fb-instant-article-feed-url',
3331
  'type' => 'info',
3332
  'style' => 'critical',
3333
+ 'desc' => ampforwp_fb_instant_article(),
3334
+ 'title' => esc_html__('Facebook Instant Articles Feed URL', 'accelerated-mobile-pages'),
3335
  'required' => array('fb-instant-article-switch', '=', 1)
3336
  ),
3337
  array(
3338
  'id' => 'fb-instant-page-id',
3339
  'type' => 'text',
3340
+ 'title' => esc_html__('Facebook Page ID', 'accelerated-mobile-pages'),
3341
+ 'desc' => esc_html__('Follow ','accelerated-mobile-pages').'<a href="https://www.facebook.com/instant_articles/signup" target="_blank">'.esc_html__('these instructions.','accelerated-mobile-pages').'</a>'.esc_html__(' to sign up to Instant Articles and get your Facebook Page ID.', 'accelerated-mobile-pages'),
3342
  'required' => array('fb-instant-article-switch', '=', 1)
3343
  ),
3344
 
3345
  array(
3346
  'id' => 'amp-fbia_2',
3347
  'type' => 'section',
3348
+ 'title' => esc_html__('Facebook Instant Articles Settings', 'accelerated-mobile-pages'),
3349
  'indent' => true,
3350
  'layout_type' => 'accordion',
3351
  'accordion-open'=> 1,
3354
  array(
3355
  'id' => 'ampforwp-fb-instant-article-posts',
3356
  'type' => 'text',
3357
+ 'title' => esc_html__('Number of Posts', 'accelerated-mobile-pages'),
3358
+ 'tooltip-subtitle' => esc_html__('Enter the number of posts to generate for Instant Articles.', 'accelerated-mobile-pages'),
3359
+ 'desc' => esc_html__('Leave this empty to generate All Posts.', 'accelerated-mobile-pages'),
3360
  'required' => array('fb-instant-article-switch', '=', 1),
3361
  'default' => '50'
3362
  ),
3363
  array(
3364
  'id' => 'ampforwp-instant-article-author-meta',
3365
  'type' => 'switch',
3366
+ 'title' => esc_html__('Author Meta', 'accelerated-mobile-pages'),
3367
  'default' => 1,
3368
  'true' => 'true',
3369
  'false' => 'false',
3370
+ 'tooltip-subtitle' => esc_html__('Enable/Disable Author Meta', 'accelerated-mobile-pages'),
3371
  'required' => array('fb-instant-article-switch', '=', 1)
3372
  ),
3373
  array(
3374
  'id' => 'ampforwp-instant-article-author-bio',
3375
  'type' => 'switch',
3376
+ 'title' => esc_html__('Author Bio', 'accelerated-mobile-pages'),
3377
  'default' => 0,
3378
  'true' => 'true',
3379
  'false' => 'false',
3380
+ 'tooltip-subtitle' => esc_html__('Enable/Disable Author Bio', 'accelerated-mobile-pages'),
3381
  'required' => array('fb-instant-article-switch', '=', 1)
3382
  ),
3383
  array(
3384
  'id' => 'ampforwp-ia-related-articles',
3385
  'type' => 'switch',
3386
+ 'title' => esc_html__('Related Articles', 'accelerated-mobile-pages'),
3387
  'default' => 0,
3388
  'true' => 'true',
3389
  'false' => 'false',
3390
+ 'tooltip-subtitle' => esc_html__('Show/Hide Related Articles', 'accelerated-mobile-pages'),
3391
  'required' => array('fb-instant-article-switch', '=', 1)
3392
  ),
3393
  array(
3394
  'id' => 'fb-instant-article-ads',
3395
  'type' => 'switch',
3396
+ 'title' => esc_html__('Advertisement', 'accelerated-mobile-pages'),
3397
  'default' => 0,
3398
  'true' => 'true',
3399
  'false' => 'false',
3400
+ 'desc' => esc_html__('Switch this on to enable advertising on Instant Article pages.', 'accelerated-mobile-pages'),
3401
  'required' => array('fb-instant-article-switch', '=', 1)
3402
  ),
3403
  array(
3404
  'id' => 'fb-instant-article-ad-type',
3405
  'type' => 'select',
3406
+ 'title' => esc_html__('Select Advertisement Format', 'accelerated-mobile-pages'),
3407
  'default' => '1',
3408
+ 'desc' => esc_html__('Select the type of advertising on Instant Article pages you want to display.', 'accelerated-mobile-pages'),
3409
  'options' => array(
3410
  '1' => 'Facebook Audience Network',
3411
  '2' => 'Custom iframe URL',
3416
  array(
3417
  'id' => 'fb-instant-article-ad-id',
3418
  'type' => 'text',
3419
+ 'title' => esc_html__('Enter your Audience Network Placement ID', 'accelerated-mobile-pages'),
3420
+ 'tooltip-subtitle' => esc_html__('You can find out more about this <a href="https://developers.facebook.com/docs/instant-articles/monetization/audience-network">here</a>. ', 'accelerated-mobile-pages'),
3421
+ 'desc' => esc_html__('<a href="https://ampforwp.com/tutorials/article/how-to-enter-audience-network-placement-id-of-advertisement-in-the-instant-article/" target="_blank">Click here</a> on how to get Audience Network Placement Id.', 'accelerated-mobile-pages'),
3422
  'required' => array('fb-instant-article-ad-type', '=', '1')
3423
  ),
3424
  array(
3425
  'id' => 'fb-instant-article-custom-iframe-ad',
3426
  'type' => 'text',
3427
  'placeholder'=> 'https://www.adserver.com/ss',
3428
+ 'title' => esc_html__('Enter your Custom iframe ad source URL'),
3429
  'required' => array('fb-instant-article-ad-type', '=', '2')
3430
  ),
3431
  array(
3432
  'id' => 'fb-instant-article-custom-embed-ad',
3433
  'type' => 'textarea',
3434
  'placeholder'=> '',
3435
+ 'title' => esc_html__('Enter your Custom Embed ad code'),
3436
  'required' => array('fb-instant-article-ad-type', '=', '3')
3437
  ),
3438
  array(
3439
  'id' => 'fb-instant-article-ad-density-setup',
3440
  'type' => 'select',
3441
+ 'title' => esc_html__('How often should ads show in Instant Article pages', 'accelerated-mobile-pages'),
3442
  'options' => array(
3443
+ 'default' => esc_html__('Every 250 words', 'accelerated-mobile-pages' ),
3444
+ 'medium' => esc_html__('Every 350 words', 'accelerated-mobile-pages' ),
3445
+ 'low' => esc_html__('Every 500 words', 'accelerated-mobile-pages' ),
3446
  ),
3447
  'required' => array('fb-instant-article-ads', '=', 1),
3448
  'default' => 'default',
3450
  array(
3451
  'id' => 'fb-instant-article-analytics',
3452
  'type' => 'switch',
3453
+ 'title' => esc_html__('Analytics', 'accelerated-mobile-pages'),
3454
  'default' => 0,
3455
  'true' => 'true',
3456
  'false' => 'false',
3457
+ 'desc' => esc_html__('Switch this on to enable analytics on Instant Article pages.', 'accelerated-mobile-pages'),
3458
  'required' => array('fb-instant-article-switch', '=', 1)
3459
  ),
3460
  array(
3461
  'id' => 'fb-instant-article-analytics-code',
3462
  'type' => 'textarea',
3463
+ 'title' => esc_html__('Enter your Analytics script code', 'accelerated-mobile-pages'),
3464
+ 'tooltip-subtitle' => esc_html__('Do not enter iframe tag. Find out more about support <a href="https://developers.facebook.com/docs/instant-articles/analytics">here</a> ', 'accelerated-mobile-pages'),
3465
  'required' => array('fb-instant-article-analytics', '=', 1)
3466
  ),
3467
  array(
3468
  'id' => 'fb-instant-crawler-ingestion',
3469
  'type' => 'switch',
3470
+ 'title' => esc_html__('Crawler Ingestion', 'accelerated-mobile-pages'),
3471
+ 'tooltip-subtitle' => esc_html__('Add ia:markup meta tag. Find out more about<a href="https://developers.facebook.com/docs/instant-articles/crawler-ingestion" target="_blank">here</a> ', 'accelerated-mobile-pages'),
3472
  'required' => array('fb-instant-article-switch', '=', 1)
3473
  ),
3474
  array(
3475
  'id' => 'fbia-header-text-area',
3476
  'type' => 'textarea',
3477
+ 'title' => esc_html__('Custom HTML in Head Tag', 'accelerated-mobile-pages'),
3478
+ 'desc' => esc_html__('Add custom HTML in Head Tag in Instant Articles Markup. Click','accelerated-mobile-pages').' <a href="https://developers.facebook.com/docs/instant-articles/guides/articlecreate" target="_blank">'.esc_html__('here', 'accelerated-mobile-pages').'</a>'. esc_html__(' for more info on Instant Articles Markup', 'accelerated-mobile-pages'),
3479
  'default' => '',
3480
  'required' => array('fb-instant-article-switch', '=', 1)
3481
  ),
3482
  array(
3483
  'id' => 'fbia-body-text-area',
3484
  'type' => 'textarea',
3485
+ 'title' => esc_html__('Custom HTML in Body Tag', 'accelerated-mobile-pages'),
3486
+ 'desc' => esc_html__('Add custom HTML in Body Tag in Instant Articles Markup. Click','accelerated-mobile-pages').' <a href="https://developers.facebook.com/docs/instant-articles/guides/articlecreate" target="_blank">'.esc_html__('here', 'accelerated-mobile-pages').'</a>'. esc_html__(' for more info on Instant Articles Markup', 'accelerated-mobile-pages'),
3487
  'default' => '',
3488
  'required' => array('fb-instant-article-switch', '=', 1)
3489
  ),
3490
  array(
3491
  'id' => 'fbia-footer-text-area',
3492
  'type' => 'textarea',
3493
+ 'title' => esc_html__('Custom HTML in Footer Tag', 'accelerated-mobile-pages'),
3494
+ 'desc' => esc_html__('Add custom HTML in Footer Tag in Instant Articles Markup. Click','accelerated-mobile-pages').' <a href="https://developers.facebook.com/docs/instant-articles/guides/articlecreate" target="_blank">'.esc_html__('here', 'accelerated-mobile-pages').'</a>'. esc_html__(' for more info on Instant Articles Markup', 'accelerated-mobile-pages'),
3495
  'default' => '',
3496
  'required' => array('fb-instant-article-switch', '=', 1)
3497
  ),
3501
 
3502
  // Hide AMP Bulk Tools
3503
  Redux::setSection( $opt_name, array(
3504
+ 'title' => esc_html__( 'Hide AMP Bulk Tools', 'accelerated-mobile-pages' ),
3505
  'id' => 'hide-amp-section',
3506
  'subsection' => true,
3507
  'desc' => 'Here are some Advanced options to help you exclude AMP from your prefered pages',
3510
  array(
3511
  'id' => 'amp-pages-meta-default',
3512
  'type' => 'select',
3513
+ 'title' => esc_html__( 'Individual AMP Page (Bulk Edit)', 'accelerated-mobile-pages' ),
3514
+ 'tooltip-subtitle' => esc_html__( 'Allows you to Show or Hide AMP from All pages, so it can be changed individually later. This option will change the Default value of AMP metabox in Pages', 'accelerated-mobile-pages' ),
3515
+ 'desc' => esc_html__( 'NOTE: Changes will overwrite the previous settings.', 'accelerated-mobile-pages' ),
3516
  'options' => array(
3517
+ 'show' => esc_html__('Show by Default', 'accelerated-mobile-pages' ),
3518
+ 'hide' => esc_html__('Hide by default', 'accelerated-mobile-pages' ),
3519
  ),
3520
  'default' => 'show',
3521
  'required'=>array('amp-on-off-for-all-pages','=','1'),
3523
  array(
3524
  'id' =>'hide-amp-categories',
3525
  'type' => 'checkbox_hierarchy',
3526
+ 'title' => esc_html__('Select Categories to Hide AMP'),
3527
+ 'tooltip-subtitle' => esc_html__( 'Hide AMP from all the posts of a selected category.', 'accelerated-mobile-pages' ),
3528
  'default' => 0,
3529
  'data' => 'category_list_hierarchy',
3530
  ),
3531
  array(
3532
  'id' =>'hide-amp-tags-bulk-option',
3533
  'type' => 'checkbox',
3534
+ 'title' => esc_html__('Select Tags to Hide AMP'),
3535
+ 'tooltip-subtitle' => esc_html__( 'Hide AMP from all the posts of a selected tags.', 'accelerated-mobile-pages' ),
3536
  'default' => 0,
3537
  'data' => 'tags',
3538
 
3543
 
3544
  // Advance Settings SECTION
3545
  Redux::setSection( $opt_name, array(
3546
+ 'title' => esc_html__( 'Advance Settings', 'accelerated-mobile-pages' ),
3547
+ 'desc' => esc_html__( 'This section has some advanced settings, please use it with care','accelerated-mobile-pages'),
3548
  'id' => 'amp-advance',
3549
  'subsection' => true,
3550
  'fields' => array(
3551
 
 
 
 
 
 
 
 
 
3552
  array(
3553
  'id' => 'amp-mobile-redirection',
3554
  'type' => 'switch',
3555
+ 'title' => esc_html__('Mobile Redirection', 'accelerated-mobile-pages'),
3556
+ 'tooltip-subtitle' => esc_html__('
3557
  Enable AMP for your mobile users. Give your visitors a Faster mobile User Experience.','accelerated-mobile-pages'),
3558
  'default' => 0,
3559
 
3561
  array(
3562
  'id' => 'convert-internal-nonamplinks-to-amp',
3563
  'type' => 'switch',
3564
+ 'title' => esc_html__('Change Internal Links to AMP', 'accelerated-mobile-pages'),
3565
+ 'tooltip-subtitle' => esc_html__('Enable if you want all your links inside the article to go to /amp/. All the outbound links will remain untouched.','accelerated-mobile-pages'),
3566
  'default' => 0,
3567
  ),
3568
  // End-point option
3572
  'title' => ('Change End Point to ?amp'),
3573
  'default' => 0,
3574
  'tooltip-subtitle' => 'Enable this option when /amp/ is giving 404 after resaving the permalink settings.',
3575
+ 'desc' => esc_html__( 'Making endpoints to ?amp will help you get the amp in tricky setups with taxonomies & post typs. Question mark in the url will not make any difference in the SEO.' ),
3576
  ),
3577
  array(
3578
  'id' => 'amp-header-text-area-for-html',
3579
  'type' => 'textarea',
3580
+ 'title' => esc_html__('Enter HTML in Head', 'accelerated-mobile-pages'),
3581
+ 'tooltip-subtitle' => esc_html__('please enter markup that is AMP validated', 'accelerated-mobile-pages'),
3582
+ 'desc' => esc_html__('check your markup here (enter markup between HEAD tag) : https://validator.ampproject.org/', 'accelerated-mobile-pages'),
3583
  'default' => ''
3584
  ),
3585
  array(
3586
  'id' => 'amp-body-text-area',
3587
  'type' => 'textarea',
3588
+ 'title' => esc_html__('Enter HTML in Body (beginning of body tag) ', 'accelerated-mobile-pages'),
3589
+ 'tooltip-subtitle' => esc_html__('please enter markup that is AMP validated', 'accelerated-mobile-pages'),
3590
+ 'desc' => esc_html__('check your markup here (enter markup in the beginning of body tag) : https://validator.ampproject.org/', 'accelerated-mobile-pages'),
3591
  'default' => ''
3592
  ),
3593
  array(
3594
  'id' => 'amp-footer-text-area-for-html',
3595
  'type' => 'textarea',
3596
+ 'title' => esc_html__('Enter HTML in Footer', 'accelerated-mobile-pages'),
3597
+ 'tooltip-subtitle' => esc_html__('please enter markup that is AMP validated', 'accelerated-mobile-pages'),
3598
+ 'desc' => esc_html__('check your markup here (enter markup between BODY tag) : https://validator.ampproject.org/',
3599
  'accelerated-mobile-pages'),
3600
  'default' => ''
3601
  ),
3602
  array(
3603
  'id' => 'ampforwp-auto-amp-menu-link',
3604
  'type' => 'switch',
3605
+ 'title' => esc_html__('Auto Add AMP in Menu URL', 'accelerated-mobile-pages'),
3606
+ 'tooltip-subtitle' => esc_html__('Automatically add <code>AMP</code> at the end of menu url', 'accelerated-mobile-pages'),
3607
  'true' => 'true',
3608
  'false' => 'false',
3609
  'default' => 0,
3613
  array(
3614
  'id' => 'ampforwp-category-base-removel-link',
3615
  'type' => 'switch',
3616
+ 'title' => esc_html__('Category base remove in AMP', 'accelerated-mobile-pages'),
3617
+ 'tooltip-subtitle' => esc_html__('Category base removal in <code>AMP</code> from url', 'accelerated-mobile-pages'),
3618
  'true' => 'true',
3619
  'false' => 'false',
3620
  'default' => 0,
3624
  array(
3625
  'id' => 'ampforwp-tag-base-removal-link',
3626
  'type' => 'switch',
3627
+ 'title' => esc_html__('Tag base remove in AMP', 'accelerated-mobile-pages'),
3628
+ 'tooltip-subtitle' => esc_html__('Tag base remove in <code>AMP</code> from url', 'accelerated-mobile-pages'),
3629
  'true' => 'true',
3630
  'false' => 'false',
3631
  'default' => 0,
3635
  array(
3636
  'id' => 'ampforwp-custom-fields-featured-image-switch',
3637
  'type' => 'switch',
3638
+ 'title' => esc_html__('Featured Image from Custom Fields', 'accelerated-mobile-pages'),
3639
+ 'tooltip-subtitle' => esc_html__('This will allow you to add Featured Image from Custom Fields', 'accelerated-mobile-pages'),
3640
  'true' => 'true',
3641
  'false' => 'false',
3642
  'default' => 0,
3644
  array(
3645
  'id' => 'ampforwp-custom-fields-featured-image',
3646
  'type' => 'text',
3647
+ 'title' => esc_html__('Custom Field For Featured Image', 'accelerated-mobile-pages'),
3648
+ 'default' => esc_html__ ('','accelerated-mobile-pages'),
3649
+ 'placeholder'=>esc_html__('Write the Custom Field of Featured Image','accelerated-mobile-pages'),
3650
  'required' => array( 'ampforwp-custom-fields-featured-image-switch', '=' , 1 )
3651
  ),
3652
  // Grab the First Image for Featured Image if there is none
3653
  array(
3654
  'id' => 'ampforwp-featured-image-from-content',
3655
  'type' => 'switch',
3656
+ 'title' => esc_html__('Featured Image from The Content', 'accelerated-mobile-pages'),
3657
+ 'tooltip-subtitle' => esc_html__('Show the first image of the content as Featured Image if there is no featured image', 'accelerated-mobile-pages'),
3658
  'true' => 'true',
3659
  'false' => 'false',
3660
  'default' => 0,
3663
  array(
3664
  'id' => 'ampforwp-duplicate-featured-image',
3665
  'type' => 'switch',
3666
+ 'title' => esc_html__('Duplicate Featured Image', 'accelerated-mobile-pages'),
3667
+ 'tooltip-subtitle' => esc_html__('Turn On the support if you want to show the Featured Image if it already exists in post content.', 'accelerated-mobile-pages'),
3668
  'true' => 'true',
3669
  'false' => 'false',
3670
  'default' => 0,
3673
  array(
3674
  'id' => 'ampforwp-retina-images',
3675
  'type' => 'switch',
3676
+ 'title' => esc_html__('Retina Images', 'accelerated-mobile-pages'),
3677
+ 'tooltip-subtitle' => esc_html__('Enable if your current images looking blured on Apple Devices.', 'accelerated-mobile-pages'),
3678
  'default' => 0,
3679
  ),
3680
  array(
3685
  '3' => '3x',
3686
  '4' => '4x',
3687
  ),
3688
+ 'title' => esc_html__('Retina Images Resolution', 'accelerated-mobile-pages'),
3689
+ 'tooltip-subtitle' => esc_html__('Select the Resolution', 'accelerated-mobile-pages'),
3690
  'default' => '2',
3691
  'required' => array('ampforwp-retina-images', '=', 1)
3692
  ),
3693
  array(
3694
  'id' => 'amp-meta-permissions',
3695
  'type' => 'select',
3696
+ 'title' => esc_html__('Show Metabox in Post Editor to', 'accelerated-mobile-pages'),
3697
  'options' => array(
3698
  'all' => 'All users who can post',
3699
  'admin' => 'Only to Admin'
3703
  array(
3704
  'id' => 'ampforwp-development-mode',
3705
  'type' => 'switch',
3706
+ 'title' => esc_html__('Dev Mode in AMP'),
3707
+ 'tooltip-subtitle' => esc_html__('This will enable the Development mode in AMP', 'accelerated-mobile-pages'),
3708
  'true' => 'true',
3709
  'false' => 'false',
3710
  'default' => 0,
3713
  'id' => 'ampforwp-development-mode-notice',
3714
  'type' => 'info',
3715
  'style' => 'info',
3716
+ 'desc' => esc_html__('Add /amp at the end of url to view the AMP version of the site. Search Engines will not be able to Crawl the AMP site when in Dev Mode.', 'accelerated-mobile-pages'),
3717
+ 'title' => esc_html__('Dev Mode', 'accelerated-mobile-pages'),
3718
  'required' => array('ampforwp-development-mode', '=', 1)
3719
  ),
3720
  array(
3721
  'id' => 'ampforwp-update-notification-bar',
3722
  'type' => 'switch',
3723
+ 'title' => esc_html__('Plugin Update Notification Bar'),
3724
+ 'tooltip-subtitle' => esc_html__('Enable/Disable the Plugin Update Notification Bar', 'accelerated-mobile-pages'),
3725
  'true' => 'true',
3726
  'false' => 'false',
3727
  'default' => 1,
3729
  array(
3730
  'id' => 'ampforwp-wptexturize',
3731
  'type' => 'switch',
3732
+ 'title' => esc_html__('Disable wptexturize'),
3733
+ 'tooltip-subtitle' => esc_html__('Enable this option to Disable wptexturize Globally', 'accelerated-mobile-pages'),
3734
  'true' => 'true',
3735
  'false' => 'false',
3736
  'default' => 0,
3738
  array(
3739
  'id' => 'ampforwp-content-builder',
3740
  'type' => 'switch',
3741
+ 'title' => esc_html__('Legacy Page Builder (widgets)', 'accelerated-mobile-pages'),
3742
+ 'tooltip-subtitle' => esc_html__('Build AMP Landing pages in minutes.', 'accelerated-mobile-pages'),
3743
  'true' => 'true',
3744
  'false' => 'false',
3745
  'default' => 0
3748
  array(
3749
  'id' => 'ampforwp-delete-on-uninstall',
3750
  'type' => 'switch',
3751
+ 'title' => esc_html__('Delete Data on Uninstall?', 'accelerated-mobile-pages'),
3752
  'default' => 0,
3753
+ 'tooltip-subtitle' => esc_html__('Enable this if you would like AMPforWP to completely remove all of its data when uninstalling via Plugins > Delete.'),
3754
  ),
3755
  ),
3756
 
3760
  $e_commerce_support[] = array(
3761
  'id' => 'ampforwp-woocommerce',
3762
  'type' => 'section',
3763
+ 'title' => esc_html__('WooCommerce Compatibility', 'accelerated-mobile-pages'),
3764
  'indent' => true,
3765
  'layout_type' => 'accordion',
3766
  'accordion-open'=> 1,
3768
  $e_commerce_support[] = array(
3769
  'id' =>'amp-enable-woocommerce',
3770
  'type' => 'switch',
3771
+ 'title' => esc_html__('WooCommerce Support', 'accelerated-mobile-pages'),
3772
  'default' => '',
3773
  'true' => 'Enabled',
3774
  'false' => 'Disabled',
3778
  'id' => 'info_normal_woocommerce',
3779
  'type' => 'info',
3780
  'required' => array('amp-enable-woocommerce', '=' , '1'),
3781
+ 'desc' => '<div style=" background: #FFF9C4;padding: 12px;line-height: 1.6;margin:-45px -14px -18px -17px;"><b>ONE LAST STEP REQUIRED:</b> This feature requires a free extension <a href="https://wordpress.org/plugins/amp-woocommerce/" target="_blank">AMP WooCommerce</a>.<br /> <div style="margin-top:4px;">(<a href="https://wordpress.org/plugins/amp-woocommerce/" target="_blank">'.esc_html__('Click here for more info','accelerated-mobile-pages').'</a>)</div></div>',
3782
  );
3783
  }
3784
  elseif ( is_plugin_active( 'amp-woocommerce/amp-woocommerce.php' ) && !is_plugin_active( 'amp-woocommerce-pro/amp-woocommerce.php' ) ) {
3786
  'id' => 'info_normal_woocommerce_pro',
3787
  'type' => 'info',
3788
  'required' => array('amp-enable-woocommerce', '=' , '1'),
3789
+ 'desc' => '<div style=" background: #FFF9C4;padding: 12px;line-height: 1.6;margin:-45px -14px -18px -17px;"><b>Pro Version:</b> Everything in Free, and Archives, Gallery, Cart, Variants & Attributes, Rating & Reviews Support.<a href="https://ampforwp.com/woocommerce/" target="_blank"></a><br /> <div style="margin-top:4px;">(<a href="https://ampforwp.com/woocommerce/" target="_blank">'.esc_html__('Click here for more info','accelerated-mobile-pages').'</a>)</div></div>',
3790
  );
3791
  }
3792
  elseif ( is_plugin_active( 'amp-woocommerce-pro/amp-woocommerce.php' ) ) {
3795
  'type' => 'info',
3796
  'style' => 'success',
3797
  'required' => array('amp-enable-woocommerce', '=' , '1'),
3798
+ 'desc' => esc_html__(' AMP WooCommerce is activated', 'accelerated-mobile-pages'),
3799
  );
3800
  }
3801
  // EDD Compatibility
3802
  $e_commerce_support[] = array(
3803
  'id' => 'ampforwp-edd-compatibility',
3804
  'type' => 'section',
3805
+ 'title' => esc_html__('Easy Digital Downloads Compatibility', 'accelerated-mobile-pages'),
3806
  'indent' => true,
3807
  'layout_type' => 'accordion',
3808
  'accordion-open'=> 1,
3810
  $e_commerce_support[] = array(
3811
  'id' =>'amp-edd-support',
3812
  'type' => 'switch',
3813
+ 'title' => esc_html__('Easy Digital Downloads Support', 'accelerated-mobile-pages'),
3814
  'default' => '',
3815
  'true' => 'Enabled',
3816
  'false' => 'Disabled',
3820
  'id' => 'info_normal_edd',
3821
  'type' => 'info',
3822
  'required' => array('amp-edd-support', '=' , '1'),
3823
+ 'desc' => '<div style=" background: #FFF9C4;padding: 12px;line-height: 1.6;margin:-45px -14px -18px -17px;"><b>ONE LAST STEP REQUIRED:</b> This feature requires <a href="https://ampforwp.com/edd-for-amp/" target="_blank">EDD for AMP extension</a>.<br /> <div style="margin-top:4px;">(<a href="https://ampforwp.com/edd-for-amp/" target="_blank">'.esc_html__('Click here for more info','accelerated-mobile-pages').'</a>)</div></div>',
3824
  );}
3825
 
3826
  // E Commerce SECTION
3827
  Redux::setSection( $opt_name, array(
3828
+ 'title' => esc_html__( 'E-Commerce', 'accelerated-mobile-pages' ),
3829
  'id' => 'amp-e-commerce',
3830
  'subsection' => true,
3831
  'fields' => $e_commerce_support
3833
 
3834
  // Translation Panel
3835
  Redux::setSection( $opt_name, array(
3836
+ 'title' => esc_html__( 'Translation Panel', 'accelerated-mobile-pages' ),
3837
+ 'desc' => esc_html__( 'Please translate the following words of page accordingly else default content is in English Language', 'accelerated-mobile-pages' ),
3838
  'id' => 'amp-translator',
3839
  'subsection' => true,
3840
  'fields' => array(
3841
  array(
3842
  'id' => 'amp-use-pot',
3843
  'type' => 'switch',
3844
+ 'title' => esc_html__('Use POT file method of Translation', 'accelerated-mobile-pages'),
3845
+ 'tooltip-subtitle' => esc_html__('Else you can use normal translation method', 'accelerated-mobile-pages'),
3846
+ 'desc' => esc_html__('Use this if you want Multilingual Translations', 'accelerated-mobile-pages'),
3847
  'default' => 0
3848
  ),
3849
  array(
3850
  'id' => 'amp-translator-breadcrumbs-homepage-text',
3851
  'type' => 'text',
3852
+ 'title' => esc_html__('Breadcrumbs Homepage Title', 'accelerated-mobile-pages'),
3853
+ 'default' => esc_html__('Homepage','accelerated-mobile-pages'),
3854
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3855
  'required' => array( 'amp-use-pot', '=' , 0 )
3856
  ),
3857
  array(
3858
  'id' => 'amp-translator-fourohfour',
3859
  'type' => 'text',
3860
+ 'title' => esc_html__('404 Error', 'accelerated-mobile-pages'),
3861
+ 'default' => esc_html__('Oops! That page can’t be found.','accelerated-mobile-pages'),
3862
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3863
  'required' => array( 'amp-use-pot', '=' , 0 )
3864
  ),
3865
  array(
3866
  'id' => 'amp-translator-show-more-posts-text',
3867
  'type' => 'text',
3868
+ 'title' => esc_html__('Show more Posts', 'accelerated-mobile-pages'),
3869
+ 'default' => esc_html__('Show more Posts','accelerated-mobile-pages'),
3870
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3871
  'required' => array( 'amp-use-pot', '=' , 0 )
3872
  ),
3873
  array(
3874
  'id' => 'amp-translator-show-previous-posts-text',
3875
  'type' => 'text',
3876
+ 'title' => esc_html__('Show previous Posts', 'accelerated-mobile-pages'),
3877
+ 'default' => esc_html__('Show previous Posts','accelerated-mobile-pages'),
3878
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3879
  'required' => array( 'amp-use-pot', '=' , 0 )
3880
  ),
3881
  array(
3882
  'id' => 'amp-translator-top-text',
3883
  'type' => 'text',
3884
+ 'title' => esc_html__('Top', 'accelerated-mobile-pages'),
3885
+ 'default' => esc_html__('Top','accelerated-mobile-pages'),
3886
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3887
  'required' => array( 'amp-use-pot', '=' , 0 )
3888
  ),
3889
  array(
3890
  'id' => 'amp-translator-non-amp-page-text',
3891
  'type' => 'text',
3892
+ 'title' => esc_html__('View Non-AMP Version', 'accelerated-mobile-pages'),
3893
+ 'default' => esc_html__('View Non-AMP Version','accelerated-mobile-pages'),
3894
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3895
  'required' => array( 'amp-use-pot', '=' , 0 )
3896
  ),
3897
  array(
3898
  'id' => 'amp-translator-related-text',
3899
  'type' => 'text',
3900
+ 'title' => esc_html__('Related Post', 'accelerated-mobile-pages'),
3901
+ 'default' => esc_html__('Related Post','accelerated-mobile-pages'),
3902
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3903
  'required' => array( 'amp-use-pot', '=' , 0 )
3904
  ),
3905
  array(
3906
  'id' => 'amp-translator-recent-text',
3907
  'type' => 'text',
3908
+ 'title' => esc_html__('Recent Posts', 'accelerated-mobile-pages'),
3909
+ 'default' => esc_html__('Recent Posts','accelerated-mobile-pages'),
3910
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3911
  'required' => array( 'amp-use-pot', '=' , 0 )
3912
  ),
3913
  array(
3914
  'id' => 'amp-translator-navigate-text',
3915
  'type' => 'text',
3916
+ 'title' => esc_html__('Navigate', 'accelerated-mobile-pages'),
3917
+ 'default' => esc_html__('Navigate','accelerated-mobile-pages'),
3918
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3919
  'required' => array( 'amp-use-pot', '=' , 0 )
3920
  ),
3921
  array(
3922
  'id' => 'amp-translator-on-text',
3923
  'type' => 'text',
3924
+ 'title' => esc_html__('On', 'accelerated-mobile-pages'),
3925
+ 'default' => esc_html__('On','accelerated-mobile-pages'),
3926
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3927
  'required' => array( 'amp-use-pot', '=' , 0 )
3928
  ),
3929
  array(
3930
  'id' => 'amp-translator-next-text',
3931
  'type' => 'text',
3932
+ 'title' => esc_html__('Next', 'accelerated-mobile-pages'),
3933
+ 'default' => esc_html__('Next','accelerated-mobile-pages'),
3934
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3935
  'required' => array( 'amp-use-pot', '=' , 0 )
3936
  ),
3937
  array(
3938
  'id' => 'amp-translator-previous-text',
3939
  'type' => 'text',
3940
+ 'title' => esc_html__('Previous', 'accelerated-mobile-pages'),
3941
+ 'default' => esc_html__('Previous','accelerated-mobile-pages'),
3942
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3943
  'required' => array( 'amp-use-pot', '=' , 0 )
3944
  ),
3945
  array(
3946
  'id' => 'amp-translator-page-text',
3947
  'type' => 'text',
3948
+ 'title' => esc_html__('Page', 'accelerated-mobile-pages'),
3949
+ 'default' => esc_html__('Page','accelerated-mobile-pages'),
3950
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3951
  'required' => array( 'amp-use-pot', '=' , 0 )
3952
  ),
3953
  array(
3954
  'id' => 'amp-translator-archives-text',
3955
  'type' => 'text',
3956
+ 'title' => esc_html__('Archives', 'accelerated-mobile-pages'),
3957
+ 'default' => esc_html__('Archives','accelerated-mobile-pages'),
3958
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3959
  'required' => array( 'amp-use-pot', '=' , 0 )
3960
  ),
3961
  array(
3962
  'id' => 'amp-translator-breadcrumbs-search-text',
3963
  'type' => 'text',
3964
+ 'title' => esc_html__('Search results for', 'accelerated-mobile-pages'),
3965
+ 'default' => esc_html__('Search results for','accelerated-mobile-pages'),
3966
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3967
  'required' => array( 'amp-use-pot', '=' , 0 )
3968
  ),
3969
  array(
3970
  'id' => 'amp-translator-error-404-text',
3971
  'type' => 'text',
3972
+ 'title' => esc_html__('Error 404', 'accelerated-mobile-pages'),
3973
+ 'default' => esc_html__('Error 404','accelerated-mobile-pages'),
3974
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3975
  'required' => array( 'amp-use-pot', '=' , 0 )
3976
  ),
3977
  array(
3978
  'id' => 'amp-translator-footer-text',
3979
  'type' => 'textarea',
3980
+ 'title' => esc_html__('Footer', 'accelerated-mobile-pages'),
3981
+ 'default' => esc_html__('All Rights Reserved','accelerated-mobile-pages'),
3982
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3983
  'required' => array( 'amp-use-pot', '=' , 0 )
3984
  ),
3985
  array(
3986
  'id' => 'amp-translator-categories-text',
3987
  'type' => 'text',
3988
+ 'title' => esc_html__('Categories', 'accelerated-mobile-pages'),
3989
+ 'default' => esc_html__('Categories: ','accelerated-mobile-pages'),
3990
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3991
  'required' => array( 'amp-use-pot', '=' , 0 )
3992
  ),
3993
  array(
3994
  'id' => 'amp-translator-tags-text',
3995
  'type' => 'text',
3996
+ 'title' => esc_html__('Tags', 'accelerated-mobile-pages'),
3997
+ 'default' => esc_html__('Tags: ','accelerated-mobile-pages'),
3998
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
3999
  'required' => array( 'amp-use-pot', '=' , 0 )
4000
  ),
4001
  array(
4002
  'id' => 'amp-translator-by-text',
4003
  'type' => 'text',
4004
+ 'title' => esc_html__('By', 'accelerated-mobile-pages'),
4005
+ 'default' => esc_html__('By','accelerated-mobile-pages'),
4006
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4007
  'required' => array( 'amp-use-pot', '=' , 0 )
4008
  ),
4009
  array(
4010
  'id' => 'amp-translator-published-by',
4011
  'type' => 'text',
4012
+ 'title' => esc_html__('Published by', 'accelerated-mobile-pages'),
4013
+ 'default' => esc_html__('Published by','accelerated-mobile-pages'),
4014
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4015
  'required' => array( 'amp-use-pot', '=' , 0 )
4016
  ),
4017
  array(
4018
  'id' => 'amp-translator-in-designthree',
4019
  'type' => 'text',
4020
+ 'title' => esc_html__('in', 'accelerated-mobile-pages'),
4021
+ 'default' =>esc_html__( 'in','accelerated-mobile-pages'),
4022
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4023
  'required' => array( 'amp-use-pot', '=' , 0 )
4024
  ),
4025
  array(
4026
  'id' => 'amp-translator-view-comments-text',
4027
  'type' => 'text',
4028
+ 'title' => esc_html__('View Comments', 'accelerated-mobile-pages'),
4029
+ 'default' => esc_html__('View Comments','accelerated-mobile-pages'),
4030
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4031
  'required' => array( 'amp-use-pot', '=' , 0 )
4032
  ),
4033
  array(
4034
  'id' => 'amp-translator-leave-a-comment-text',
4035
  'type' => 'text',
4036
+ 'title' => esc_html__('Leave a Comment', 'accelerated-mobile-pages'),
4037
+ 'default' => esc_html__('Leave a Comment','accelerated-mobile-pages'),
4038
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4039
  'required' => array( 'amp-use-pot', '=' , 0 )
4040
  ),
4041
  array(
4042
  'id' => 'amp-translator-comments-closed',
4043
  'type' => 'text',
4044
+ 'title' => esc_html__('Comments are closed.', 'accelerated-mobile-pages'),
4045
+ 'default' => esc_html__('Comments are closed.','accelerated-mobile-pages'),
4046
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4047
  'required' => array( 'amp-use-pot', '=' , 0 )
4048
  ),
4049
  array(
4050
  'id' => 'amp-translator-at-text',
4051
  'type' => 'text',
4052
+ 'title' => esc_html__('at', 'accelerated-mobile-pages'),
4053
+ 'default' => esc_html__('at','accelerated-mobile-pages'),
4054
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4055
  'required' => array( 'amp-use-pot', '=' , 0 )
4056
  ),
4057
  array(
4058
  'id' => 'amp-translator-says-text',
4059
  'type' => 'text',
4060
+ 'title' => esc_html__('says', 'accelerated-mobile-pages'),
4061
+ 'default' =>esc_html__( 'says','accelerated-mobile-pages'),
4062
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4063
  'required' => array( 'amp-use-pot', '=' , 0 )
4064
  ),
4065
  array(
4066
  'id' => 'amp-translator-Edit-text',
4067
  'type' => 'text',
4068
+ 'title' => esc_html__('Edit', 'accelerated-mobile-pages'),
4069
+ 'default' => esc_html__('Edit','accelerated-mobile-pages'),
4070
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4071
  'required' => array( 'amp-use-pot', '=' , 0 )
4072
  ),
4073
  array(
4074
  'id' => 'amp-translator-ago-date-text',
4075
  'type' => 'text',
4076
+ 'title' => esc_html__('ago', 'accelerated-mobile-pages'),
4077
+ 'default' => esc_html__('ago','accelerated-mobile-pages'),
4078
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4079
  'required' => array( 'amp-use-pot', '=' , 0 )
4080
  ),
4081
  array(
4082
  'id' => 'amp-translator-modified-date-text',
4083
  'type' => 'text',
4084
+ 'title' => esc_html__('This post was last modified on ', 'accelerated-mobile-pages'),
4085
+ 'default' => esc_html__('This post was last modified on ','accelerated-mobile-pages'),
4086
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4087
  'required' => array( 'amp-use-pot', '=' , 0 )
4088
  ),
4089
  array(
4090
  'id' => 'amp-translator-archive-cat-text',
4091
  'type' => 'text',
4092
+ 'title' => esc_html__('Category (archive title)', 'accelerated-mobile-pages'),
4093
+ 'default' => esc_html__('Category: ','accelerated-mobile-pages'),
4094
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4095
  'required' => array( 'amp-use-pot', '=' , 0 )
4096
  ),
4097
  array(
4098
  'id' => 'amp-translator-archive-tag-text',
4099
  'type' => 'text',
4100
+ 'title' => esc_html__('Tag (archive title)', 'accelerated-mobile-pages'),
4101
+ 'default' => esc_html__('Tag: ','accelerated-mobile-pages'),
4102
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4103
  'required' => array( 'amp-use-pot', '=' , 0 )
4104
  ),
4105
  array(
4106
  'id' => 'amp-translator-show-more-text',
4107
  'type' => 'text',
4108
+ 'title' => esc_html__('View More Posts (Widget Button)', 'accelerated-mobile-pages'),
4109
+ 'default' => esc_html__('View More Posts','accelerated-mobile-pages'),
4110
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4111
  'required' => array( 'amp-use-pot', '=' , 0 )
4112
  ),
4113
  array(
4114
  'id' => 'amp-translator-next-read-text',
4115
  'type' => 'text',
4116
+ 'title' => esc_html__('Next Read', 'accelerated-mobile-pages'),
4117
+ 'default' => esc_html__('Next Read: ','accelerated-mobile-pages'),
4118
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4119
  'required' => array( 'amp-use-pot', '=' , 0 )
4120
  ),
4121
  array(
4122
  'id' => 'amp-translator-read-more',
4123
  'type' => 'text',
4124
+ 'title' => esc_html__('Read More', 'accelerated-mobile-pages'),
4125
+ 'default' => esc_html__('Read More','accelerated-mobile-pages'),
4126
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4127
  'required' => array( 'amp-use-pot', '=' , 0 )
4128
  ),
4129
  array(
4130
  'id' => 'amp-translator-via-text',
4131
  'type' => 'text',
4132
+ 'title' => esc_html__('via', 'accelerated-mobile-pages'),
4133
+ 'default' => esc_html__('via','accelerated-mobile-pages'),
4134
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4135
  'required' => array( 'amp-use-pot', '=' , 0 )
4136
  ),
4137
  array(
4138
  'id' => 'amp-translator-share-text',
4139
  'type' => 'text',
4140
+ 'title' => esc_html__('Share', 'accelerated-mobile-pages'),
4141
+ 'default' => esc_html__('Share','accelerated-mobile-pages'),
4142
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4143
  'required' => array( 'amp-use-pot', '=' , 0 )
4144
  ),
4145
  array(
4146
  'id' => 'amp-translator-search-text',
4147
  'type' => 'text',
4148
+ 'title' => esc_html__(' You searched for: ', 'accelerated-mobile-pages'),
4149
+ 'default' => esc_html__(' You searched for: ','accelerated-mobile-pages'),
4150
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4151
  'required' => array( 'amp-use-pot', '=' , 0 )
4152
  ),
4153
  array(
4154
  'id' => 'amp-translator-search-no-found',
4155
  'type' => 'text',
4156
+ 'title' => esc_html__(' It seems we can\'t find what you\'re looking for. ', 'accelerated-mobile-pages'),
4157
+ 'default' => esc_html__(' It seems we can\'t find what you\'re looking for. ','accelerated-mobile-pages'),
4158
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4159
  'required' => array( 'amp-use-pot', '=' , 0 )
4160
  ),
4161
  array(
4162
  'id' => 'amp-translator-and-text',
4163
  'type' => 'text',
4164
+ 'title' => esc_html__(' and ', 'accelerated-mobile-pages'),
4165
+ 'default' => esc_html__(' and ','accelerated-mobile-pages'),
4166
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4167
  'required' => array( 'amp-use-pot', '=' , 0 )
4168
  ),
4169
  array(
4170
  'id' => 'design-3-search-subsection',
4171
  'type' => 'section',
4172
+ 'title' => esc_html__('Search bar Translation Text', 'accelerated-mobile-pages'),
4173
  'indent' => true,
4174
  'required' => array( 'amp-use-pot', '=' , 0 ),
4175
  'layout_type' => 'accordion',
4178
  array(
4179
  'id' => 'ampforwp-search-placeholder',
4180
  'type' => 'text',
4181
+ 'title' => esc_html__('Type Here', 'accelerated-mobile-pages'),
4182
  'default' => 'Type Here','accelerated-mobile-pages'),
4183
+ 'desc' => esc_html__('This is the text that gets shown in for Search Box','accelerated-mobile-pages'),
4184
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4185
  'required' => array( 'amp-use-pot', '=' , 0 )
4186
 
4187
  ),
4188
  array(
4189
  'id' => 'ampforwp-search-label',
4190
  'type' => 'text',
4191
+ 'title' => esc_html__('Type your search query and hit enter', 'accelerated-mobile-pages'),
4192
+ 'desc' => esc_html__('This is the text that gets shown above Search Box','accelerated-mobile-pages'),
4193
+ 'default' => esc_html__('Type your search query and hit enter: ','accelerated-mobile-pages'),
4194
+ 'placeholder'=>esc_html__('write here','accelerated-mobile-pages'),
4195
  'required' => array( 'amp-use-pot', '=' , 0 )
4196
 
4197
  )
4200
 
4201
  // Appearance Section
4202
  Redux::setSection( $opt_name, array(
4203
+ 'title' => esc_html__( 'Design', 'accelerated-mobile-pages' ),
4204
  'icon' => 'el el-adjust-alt',
4205
  'desc' => ''
4206
 
4217
  array(
4218
  'demo_link' => 'https://ampforwp.com/demo/#one',
4219
  'upgrade'=>true,
4220
+ 'title'=>esc_html__('Design One', 'accelerated-mobile-pages' ),
4221
  'value'=>1,
4222
+ 'alt'=>esc_html__('Design One', 'accelerated-mobile-pages' ),
4223
  'img'=>AMPFORWP_PLUGIN_DIR_URI.'/images/design-1.png',
4224
  ),
4225
  array(
4226
  'demo_link' => 'https://ampforwp.com/demo/#two',
4227
  'upgrade'=>true,
4228
+ 'title'=>esc_html__('Design Two', 'accelerated-mobile-pages' ),
4229
  'value'=>2,
4230
+ 'alt'=>esc_html__('Design Two', 'accelerated-mobile-pages' ),
4231
  'img'=>AMPFORWP_PLUGIN_DIR_URI.'/images/design-2.png',
4232
  ),
4233
  array(
4234
  'demo_link' => 'https://ampforwp.com/demo/#three',
4235
  'upgrade'=>true,
4236
+ 'title'=>esc_html__('Design Three', 'accelerated-mobile-pages' ),
4237
  'value'=>3,
4238
+ 'alt'=>esc_html__('Design Three', 'accelerated-mobile-pages' ),
4239
  'img'=>AMPFORWP_PLUGIN_DIR_URI.'/images/design-3.png',
4240
  ),
4241
  array(
4242
  'demo_link' => 'https://ampforwp.com/demo/amp-pagebuilder/amp/',
4243
  'upgrade' => true,
4244
+ 'title' => esc_html__('Swift', 'accelerated-mobile-pages' ),
4245
  'value' => 4,
4246
+ 'alt' => esc_html__('Swift', 'accelerated-mobile-pages' ),
4247
  'img' => AMPFORWP_PLUGIN_DIR_URI.'/images/swift.png',
4248
  ),
4249
  );
4268
  }
4269
  // Themes Section
4270
  Redux::setSection( $opt_name, array(
4271
+ 'title' => esc_html__( 'Themes', 'accelerated-mobile-pages' ), 'class' => 'ampforwp-new-element',
4272
 
4273
  'id' => 'amp-theme-settings',
4274
  'subsection' => true,
4278
  'id' => 'amp-design-selector',
4279
  'class' => 'amp-design-selector',
4280
  'type' => 'demolink_image_select',
4281
+ 'title' => esc_html__( 'Themes Selector', 'accelerated-mobile-pages' ),
4282
+ 'subtitle' => esc_html__( 'Select your design from dropdown', 'accelerated-mobile-pages' ).' or <br /><a href="https://ampforwp.com/themes/" style="position: relative;
4283
  top: 20px;text-decoration: none;
4284
  background: #eee;padding: 5px 8px 5px 9px;
4285
+ border-radius: 30px;" target="_blank">View More AMP Themes →</a>',
4286
  'options' => $themeDesign,
4287
  'default' => '4'
4288
  ),
4290
  'id' => 'ampforwp_layouts_core',
4291
  'type' => 'raw',
4292
  'subtitle' => '<a class="amp-layouts-desc" href="https://ampforwp.com/amp-layouts/" target="_blank">What is Layouts?</a>',
4293
+ 'title' => esc_html__('AMP Layouts', 'accelerated-mobile-pages'),
4294
  'full_width'=>true,
4295
  'class' =>(!is_plugin_active('amp-layouts/amp-layouts.php')? '': 'hide'),//,
4296
  'markdown'=> true,
4316
 
4317
  // Global Theme Settings
4318
  Redux::setSection($opt_name, array(
4319
+ 'title' => esc_html__( 'Global', 'accelerated-mobile-pages' ),
4320
  'id' => 'amp-theme-global-subsection',
4321
  'subsection' => true,
4322
  'fields' => array(
4323
  array(
4324
  'id' => 'colorscheme-section',
4325
  'type' => 'section',
4326
+ 'title' => esc_html__('Color Scheme', 'accelerated-mobile-pages'),
4327
  'indent' => true,
4328
  'layout_type' => 'accordion',
4329
  'accordion-open'=> 1,
4331
  // Swift
4332
  array(
4333
  'id' => 'swift-color-scheme',
4334
+ 'title' => esc_html__('Global Color Scheme', 'accelerated-mobile-pages'),
4335
+ 'tooltip-subtitle' => esc_html__('Choose the color for title, anchor link','accelerated-mobile-pages'),
4336
  'type' => 'color_rgba',
4337
  'default' => array(
4338
  'color' => '#005be2',
4344
  array(
4345
  'id' => 'amp-opt-color-rgba-colorscheme',
4346
  'type' => 'color_rgba',
4347
+ 'title' => esc_html__('Color Scheme','accelerated-mobile-pages'),
4348
  'default' => array(
4349
  'color' => '#F42F42',
4350
  ),
4355
  array(
4356
  'id' => 'amp-opt-color-rgba-font',
4357
  'type' => 'color_rgba',
4358
+ 'title' => esc_html__('Color Scheme Font Color','accelerated-mobile-pages'),
4359
  'default' => array(
4360
  'color' => '#fff',
4361
  ),
4367
  array(
4368
  'id' => 'amp-opt-color-rgba-link',
4369
  'type' => 'color_rgba',
4370
+ 'title' => esc_html__('Anchor Link Color','accelerated-mobile-pages'),
4371
  'default' => array(
4372
  'color' => '#f42f42',
4373
  ),
4379
  array(
4380
  'id' => 'amp-opt-color-rgba-link-design2',
4381
  'type' => 'color_rgba',
4382
+ 'title' => esc_html__('Anchor Link Color','accelerated-mobile-pages'),
4383
  'default' => array(
4384
  'color' => '#0a89c0',
4385
  ),
4391
  array(
4392
  'id' => 'amp-opt-color-rgba-link-design1',
4393
  'type' => 'color_rgba',
4394
+ 'title' => esc_html__('Anchor Link Color','accelerated-mobile-pages'),
4395
  'default' => array(
4396
  'color' => '#0a89c0',
4397
  ),
4402
  array(
4403
  'id' => 'amp-opt-color-rgba-colorscheme-call',
4404
  'type' => 'color_rgba',
4405
+ 'title' => esc_html__('Call Button Color','accelerated-mobile-pages'),
4406
  'default' => array(
4407
  'color' => '#0a89c0',
4408
  ),
4414
  array(
4415
  'id' => 'typography-section',
4416
  'type' => 'section',
4417
+ 'title' => esc_html__('Typography', 'accelerated-mobile-pages'),
4418
  'indent' => true,
4419
  'required' => array(
4420
  array('amp-design-selector', '=' , '4')
4425
  array(
4426
  'id' =>'google_font_api_key',
4427
  'type' =>'text',
4428
+ 'title' =>esc_html__('Google Font API key','accelerated-mobile-pages'),
4429
+ 'tooltip-subtitle' => esc_html__('You can get the Link <a target="_blank" href="https://developers.google.com/fonts/docs/developer_api?refresh=1&pli=1#APIKey">form here</a>','accelerated-mobile-pages'),
4430
  'default' =>'',
4431
  'required' => array(
4432
  array('amp-design-selector', '=' , '4')
4438
  'id' => 'amp_font_selector',
4439
  'type' => 'select',
4440
  'class' => 'ampforwp-google-font-class ampwp-font-families',
4441
+ 'title' => esc_html__( 'Global Font Family ', 'accelerated-mobile-pages' ),
4442
+ 'tooltip-subtitle' => esc_html__( 'Select your design from dropdown or ', 'accelerated-mobile-pages' ),
4443
  'options' => array(
4444
  '1' => 'None',
4445
  ),
4455
  'type' => 'select',
4456
  'class' => 'ampforwp-google-font-class ampwp-font-family-weights',
4457
  'multi' => true,
4458
+ 'title' => esc_html__( 'Global Font Weight Selector', 'accelerated-mobile-pages' ),
4459
+ 'tooltip-subtitle' => esc_html__( 'Select your design from dropdown', 'accelerated-mobile-pages' ),
4460
  'options' => array(
4461
  '1' => 'none',
4462
  ),
4470
  'id' =>'google_current_font_data',
4471
  'type' =>'text',
4472
  'class' => 'hide',
4473
+ 'title' =>esc_html__('Google Font Current Font','accelerated-mobile-pages'),
4474
  'default' =>'',
4475
  'required' => array(
4476
  array('amp-design-selector', '=' , '4')
4477
  )
4478
  ),
4479
 
 
 
 
 
 
 
 
4480
  array(
4481
  'id' => 'content-font-family-enable',
4482
  'type' => 'switch',
4483
  'class' => 'ampforwp-google-font-class',
4484
+ 'title' => esc_html__('Content Font Selector', 'accelerated-mobile-pages'),
4485
  'required' => array(
4486
  array('amp-design-selector', '=' , '4')
4487
  ),
4494
  'id' => 'amp_font_selector_content_single',
4495
  'type' => 'select',
4496
  'class' => 'ampforwp-google-font-class ampwp-font-families',
4497
+ 'title' => esc_html__( 'Content Font Family Selector', 'accelerated-mobile-pages' ),
4498
+ 'tooltip-subtitle' => esc_html__( 'Select your design from dropdown or ', 'accelerated-mobile-pages' ),
4499
  'options' => array(
4500
  '1' => 'None',
4501
  ),
4512
  'type' => 'select',
4513
  'class' => 'ampforwp-google-font-class ampwp-font-family-weights',
4514
  'multi' => true,
4515
+ 'title' => esc_html__( 'Content Font Family Weight Selector', 'accelerated-mobile-pages' ),
4516
+ 'tooltip-subtitle' => esc_html__( 'Select your design from dropdown', 'accelerated-mobile-pages' ),
4517
  'options' => array(
4518
  '1' => 'none',
4519
  ),
4528
  'id' =>'google_current_font_data_content_single',
4529
  'type' =>'text',
4530
  'class' => 'hide',
4531
+ 'title' =>esc_html__('Google Font Current Font','accelerated-mobile-pages'),
4532
  'default' =>'',
4533
  'required' => array(
4534
  array('amp-design-selector', '=' , '4')
4538
  array(
4539
  'id' => 'general_sdbar',
4540
  'type' => 'section',
4541
+ 'title' => esc_html__('General', 'accelerated-mobile-pages'),
4542
  'indent' => true,
4543
  'layout_type' => 'accordion',
4544
  'accordion-open'=> 1,
4547
  array(
4548
  'id' => 'gnrl-sidebar',
4549
  'type' => 'switch',
4550
+ 'title' => esc_html__('Sidebar', 'accelerated-mobile-pages'),
4551
  'default' => 0,
4552
  'required' => array( array('amp-design-selector', '=' , '4') ),
4553
  ),
4555
  'id' => 'gbl-sidebar',
4556
  'class' => 'child_opt child_opt_arrow',
4557
  'type' => 'switch',
4558
+ 'title' => esc_html__('Homepage Sidebar', 'accelerated-mobile-pages'),
4559
  'default' => 0,
4560
  'required' => array( array('gnrl-sidebar', '=' , '1') ),
4561
  ),
4563
  'id' => 'sidebar-bgcolor',
4564
  'class' => 'child_opt child_opt_arrow',
4565
  'type' => 'color_rgba',
4566
+ 'title' => esc_html__('Sidebar Background','accelerated-mobile-pages'),
4567
  'default' => array(
4568
  'color' => '#f7f7f7',
4569
  ),
4573
  'id' => 'sbr-heading-color',
4574
  'type' => 'color_rgba',
4575
  'class' => 'child_opt',
4576
+ 'title' => esc_html__('Heading', 'accelerated-mobile-pages'),
4577
  'default' => array(
4578
  'color' => '#333',
4579
  ),
4585
  'id' => 'sbr-text-color',
4586
  'type' => 'color_rgba',
4587
  'class' => 'child_opt',
4588
+ 'title' => esc_html__('Text', 'accelerated-mobile-pages'),
4589
  'default' => array(
4590
  'color' => '#333',
4591
  ),
4597
  'id' => 'swift-sidebar',
4598
  'class' => 'child_opt child_opt_arrow',
4599
  'type' => 'switch',
4600
+ 'title' => esc_html__('Single Sidebar', 'accelerated-mobile-pages'),
4601
  'default' => 1,
4602
  'required' => array( array('single-design-type', '=' , '4'),
4603
  array('gnrl-sidebar', '=' , '1'),
4607
  array(
4608
  'id' => 'design-advanced',
4609
  'type' => 'section',
4610
+ 'title' => esc_html__('Advanced', 'accelerated-mobile-pages'),
4611
  'indent' => true,
4612
  'layout_type' => 'accordion',
4613
  'accordion-open'=> 1,
4615
  array(
4616
  'id' => 'css_editor',
4617
  'type' => 'ace_editor',
4618
+ 'title' => esc_html__('Custom CSS', 'accelerated-mobile-pages'),
4619
+ 'tooltip-subtitle' => esc_html__('You can customize the Stylesheet of the AMP version by using this option.', 'accelerated-mobile-pages'),
4620
  'mode' => 'css',
4621
  'theme' => 'monokai',
4622
  'desc' => '',
4623
+ 'default' => esc_html__('/******* Paste your Custom CSS in this Editor *******/','accelerated-mobile-pages')
4624
  ),
4625
 
4626
  )
4638
 
4639
  // Header Section
4640
  Redux::setSection( $opt_name, array(
4641
+ 'title' => esc_html__( 'Header', 'accelerated-mobile-pages' ),
4642
  'id' => 'amp-theme-header-settings',
4643
  'subsection' => true,
4644
  'tab' => true,
4648
  array(
4649
  'id' => 'header_section_1',
4650
  'type' => 'section',
4651
+ 'title' => esc_html__('Header Design', 'accelerated-mobile-pages'),
4652
  'indent' => true,
4653
  'layout_type' => 'accordion',
4654
  'accordion-open'=> 1,
4655
  ),
4656
  array(
4657
  'id' => 'header-type',
4658
+ 'title' => esc_html__('Header Type', 'accelerated-mobile-pages'),
4659
  'type' => 'image_select',
4660
  'options'=> array(
4661
  '1' => array(
4672
  ),
4673
  ),
4674
  'default'=> '1',
 
 
4675
  'required' => array( array('amp-design-selector', '=' , '4') ),
4676
  ),
4677
  array(
4678
  'id' => 'header_section_2',
4679
  'type' => 'section',
4680
+ 'title' => esc_html__('Navigation Menu Design', 'accelerated-mobile-pages'),
4681
  'indent' => true,
4682
  'layout_type' => 'accordion',
4683
  'accordion-open'=> 1,
4684
  ),
4685
  array(
4686
  'id' => 'menu-type',
4687
+ 'title' => esc_html__('Menu Type', 'accelerated-mobile-pages'),
4688
  'type' => 'image_select',
4689
  'options'=> array(
4690
  '1' => array(
4693
  ),
4694
  ),
4695
  'default'=> '1',
 
 
4696
  'required' => array( array('amp-design-selector', '=' , '4') ),
4697
  ),
4698
  array(
4699
  'id' => 'menu-search',
4700
  'type' => 'switch',
4701
+ 'title' => esc_html__('Menu Search', 'accelerated-mobile-pages'),
4702
  'required' => array(
4703
  array('amp-design-selector', '=' , '4')
4704
  ),
4707
  array(
4708
  'id' => 'amp-swift-menu-cprt',
4709
  'type' => 'switch',
4710
+ 'title' => esc_html__( 'Menu Copyright', 'accelerated-mobile-pages' ),
4711
  'required' => array(
4712
  array('amp-design-selector', '=' , '4')
4713
  ),
4716
  array(
4717
  'id' => 'primary-menu',
4718
  'type' => 'switch',
4719
+ 'title' => esc_html__('Alternative Menu', 'accelerated-mobile-pages'),
4720
  'true' => 'true',
4721
  'false' => 'false',
4722
  'default' => '1',
4730
  'mode' => 'padding',
4731
  'units' => array('px'),
4732
  'units_extended' => 'false',
4733
+ 'title' => esc_html__('Alt Menu Padding', 'accelerated-mobile-pages'),
4734
  'default' => array(
4735
  'padding-top' => '12px',
4736
  'padding-right' => '25px',
4745
  array(
4746
  'class' => 'child_opt',
4747
  'id' => 'primary-menu-text-scheme',
4748
+ 'title' => esc_html__('Alt Menu Text', 'accelerated-mobile-pages'),
4749
  'type' => 'color_rgba',
4750
  'default' => array(
4751
  'rgba' => 'rgb(53, 53, 53)',
4757
  array(
4758
  'class' => 'child_opt',
4759
  'id' => 'primary-menu-background-scheme',
4760
+ 'title' => esc_html__('Alt Menu Background', 'accelerated-mobile-pages'),
4761
  'type' => 'color_rgba',
4762
  'default' => array(
4763
  'rgba' => 'rgb(239, 239, 239)',
4770
  'id' => 'drp-dwn',
4771
  'type' => 'switch',
4772
  'class' => 'child_opt child_opt_arrow',
4773
+ 'title' => esc_html__('Dropdown Support', 'accelerated-mobile-pages'),
4774
  'true' => 'true',
4775
  'false' => 'false',
4776
  'default' => 0,
4778
  ),
4779
  array(
4780
  'id' => 'signin-button',
4781
+ 'title' => esc_html__('Button Customize', 'accelerated-mobile-pages'),
4782
+ 'tooltip-subtitle' => esc_html__('You can do the customization here ','accelerated-mobile-pages'),
4783
  'type' => 'switch',
4784
  'default' => '0',
4785
  'required' => array(
4788
  ),
4789
  array(
4790
  'id' => 'signin-button-text',
4791
+ 'title' => esc_html__('Button Text', 'accelerated-mobile-pages'),
4792
+ 'tooltip-subtitle' => esc_html__('You can write your required text ','accelerated-mobile-pages'),
4793
  'type' => 'text',
4794
  'default' => 'Sign up free',
4795
  'required' => array(
4798
  ),
4799
  array(
4800
  'id' => 'signin-button-link',
4801
+ 'title' => esc_html__('Button Link', 'accelerated-mobile-pages'),
4802
+ 'tooltip-subtitle' => esc_html__('You can add the Link here ','accelerated-mobile-pages'),
4803
  'type' => 'text',
4804
  'default' => '#',
4805
  'required' => array(
4808
  ),
4809
  array(
4810
  'id' => 'signin-button-style',
4811
+ 'title' => esc_html__('Button Styles', 'accelerated-mobile-pages'),
4812
+ 'tooltip-subtitle' => esc_html__('You can change the button here','accelerated-mobile-pages'),
4813
  'type' => 'switch',
4814
  'default' => '0',
4815
  'required' => array(
4818
  ),
4819
  array(
4820
  'id' => 'signin-button-border-line',
4821
+ 'title' => esc_html__('Button Border Line', 'accelerated-mobile-pages'),
4822
+ 'tooltip-subtitle' => esc_html__('You can change the button border line','accelerated-mobile-pages'),
4823
  'type' => 'text',
4824
  'default' => '2',
4825
  'required' => array(
4828
  ),
4829
  array(
4830
  'id' => 'signin-button-text-color',
4831
+ 'title' => esc_html__('Button Text Color', 'accelerated-mobile-pages'),
4832
+ 'tooltip-subtitle' => esc_html__('Choose the color for Button Texxt','accelerated-mobile-pages'),
4833
  'type' => 'color_rgba',
4834
  'default' => array(
4835
  'rgba' => 'rgb(0, 0, 0)',
4840
  ),
4841
  array(
4842
  'id' => 'signin-button-border-color',
4843
+ 'title' => esc_html__('Button Border Line Color', 'accelerated-mobile-pages'),
4844
+ 'tooltip-subtitle' => esc_html__('Choose the color for Button Border Line','accelerated-mobile-pages'),
4845
  'type' => 'color_rgba',
4846
  'default' => array(
4847
  'rgba' => 'rgb(0, 0, 0)',
4852
  ),
4853
  array(
4854
  'id' => 'border-type',
4855
+ 'title' => esc_html__('Border Type', 'accelerated-mobile-pages'),
4856
  'type' => 'select',
4857
  'options'=> array(
4858
  '1' => 'Square',
4864
  ),
4865
  array(
4866
  'id' => 'border-radius',
4867
+ 'title' => esc_html__('Customize Border Radius', 'accelerated-mobile-pages'),
4868
+ 'tooltip-subtitle' => esc_html__('You can change the border radius','accelerated-mobile-pages'),
4869
  'type' => 'text',
4870
  'default' => '10',
4871
  'required' => array(
4875
  array(
4876
  'id' => 'ampforwp-amp-menu',
4877
  'type' => 'switch',
4878
+ 'title' => esc_html__('Navigation Menu', 'accelerated-mobile-pages'),
4879
+ 'desc' => esc_html__( 'Add Menus to your AMP pages by clicking on this <a href="'.trailingslashit(get_admin_url()).'nav-menus.php?action=locations">link</a>' , 'accelerated-mobile-pages'),
4880
+ 'tooltip-subtitle' => esc_html__('Enable/Disable Menu from header', 'accelerated-mobile-pages'),
4881
  'true' => 'true',
4882
  'false' => 'false',
4883
  'default' => 1,
4887
  array(
4888
  'id' => 'header_section_3',
4889
  'type' => 'section',
4890
+ 'title' => esc_html__('Header Settings', 'accelerated-mobile-pages'),
4891
  'indent' => true,
4892
  'layout_type' => 'accordion',
4893
  'accordion-open'=> 1,
4896
  array(
4897
  'id' => 'ampforwp-callnow-button',
4898
  'type' => 'switch',
4899
+ 'title' => esc_html__('Call Now Button', 'accelerated-mobile-pages'),
4900
  'true' => 'true',
4901
  'false' => 'false',
4902
  'required' => array(
4912
  array('ampforwp-callnow-button', '=' , '1'),
4913
  array('amp-design-selector', '!=' , '1')
4914
  ),
4915
+ 'title' => esc_html__('Enter Phone Number', 'accelerated-mobile-pages'),
4916
  'default' => '',
4917
  ),
4918
  array(
4919
  'id' =>'amp-on-off-support-for-non-amp-home-page',
4920
  'type' => 'switch',
4921
+ 'title' => esc_html__('Non-AMP link in Header', 'accelerated-mobile-pages'),
4922
+ 'tooltip-subtitle' => esc_html__('If you want users in header to go to non-AMP website from the Header', 'accelerated-mobile-pages'),
4923
  'default' => 0,
4924
  ),
4925
  array(
4926
  'id' => 'amp-opt-sticky-head',
4927
  'type' => 'switch',
4928
+ 'title' => esc_html__('Make Header UnSticky','accelerated-mobile-pages'),
4929
  'required' => array(
4930
  array('amp-design-selector', '=' , '3')
4931
  ),
4932
+ 'tooltip-subtitle' => esc_html__('Turning it ON will remove the sticky head from the design.', 'accelerated-mobile-pages' ),
4933
  'default' => '0'
4934
  ),
4935
  array(
4936
  'id' => 'amp-design-3-search-feature',
4937
  'type' => 'switch',
4938
+ 'title' => esc_html__( 'Search', 'accelerated-mobile-pages' ),
4939
  'required' => array(
4940
  array('amp-design-selector', '=' , '3')
4941
  ),
4945
  array(
4946
  'id' => 'amp-design-2-search-feature',
4947
  'type' => 'switch',
4948
+ 'title' => esc_html__( 'Search', 'accelerated-mobile-pages' ),
4949
  'required' => array(
4950
  array('amp-design-selector', '=' , '2')
4951
  ),
4955
  array(
4956
  'id' => 'amp-design-1-search-feature',
4957
  'type' => 'switch',
4958
+ 'title' => esc_html__( 'Search', 'accelerated-mobile-pages' ),
4959
  'required' => array(
4960
  array('amp-design-selector', '=' , '1')
4961
  ),
4964
  array(
4965
  'id' => 'amp-swift-search-feature',
4966
  'type' => 'switch',
4967
+ 'title' => esc_html__( 'Search', 'accelerated-mobile-pages' ),
4968
  'required' => array(
4969
  array('amp-design-selector', '=' , '4')
4970
  ),
4982
  array(
4983
  'id' => 'amp-opt-color-rgba-headercolor',
4984
  'type' => 'color_rgba',
4985
+ 'title' => esc_html__('Header Background','accelerated-mobile-pages'),
4986
  'default' => array(
4987
  'color' => '#FFFFFF',
4988
  ),
4993
  array(
4994
  'id' => 'amp-opt-color-rgba-headerelements',
4995
  'type' => 'color_rgba',
4996
+ 'title' => esc_html__('Header Elements','accelerated-mobile-pages'),
4997
  'default' => array(
4998
  'color' => ampforwp_get_element_default_color(),
4999
  ),
5002
  )
5003
  ),
5004
  // Tab 1 end
 
 
 
 
 
 
 
 
 
5005
  // Tab 2
5006
  array(
5007
  'id' => 'header-tab-2',
5008
  'type' => 'section',
5009
+ 'title' => esc_html__('Advanced Header Options', 'accelerated-mobile-pages'),
5010
  'indent' => true,
5011
  //'start' => true,
5012
  //'label' => 'Tab 2',
5019
  array(
5020
  'id' => 'customize-options',
5021
  'type' => 'switch',
5022
+ 'title' => esc_html__('Advanced Header Design', 'accelerated-mobile-pages'),
5023
  'default' => 0,
5024
  'required' => array( array('amp-design-selector', '=' , '4') ),
5025
  ),
5027
  'id' => 'swift-width-control',
5028
  'class' => 'child_opt',
5029
  'type' => 'text',
5030
+ 'title' => esc_html__('Header Width', 'accelerated-mobile-pages'),
5031
  'default' => '1100px',
5032
  'required' => array(
5033
  array('customize-options','=',1)
5037
  'class' => 'child_opt',
5038
  'id' => 'swift-height-control',
5039
  'type' => 'text',
5040
+ 'title' => esc_html__('Header Height', 'accelerated-mobile-pages'),
5041
  'default' => '60px',
5042
  'required' => array(
5043
  array('customize-options','=',1)
5047
  'class' => 'child_opt',
5048
  'id' => 'margin-padding-options',
5049
  'type' => 'switch',
5050
+ 'title' => esc_html__('Margin / Padding ', 'accelerated-mobile-pages'),
5051
  'default' => 0,
5052
  'required' => array(
5053
  array('customize-options','=',1)
5061
  'mode' => 'padding',
5062
  'units' => array('px','%'),
5063
  'units_extended' => 'false',
5064
+ 'title' => esc_html__('Padding', 'accelerated-mobile-pages'),
5065
  'default' => array(
5066
  'padding-top' => '0px',
5067
  'padding-right' => '0px',
5081
  'mode' => 'margin',
5082
  'units' => array('px'),
5083
  'units_extended' => 'false',
5084
+ 'title' => esc_html__('Margin', 'accelerated-mobile-pages'),
5085
  'default' => array(
5086
  'margin-top' => '0px',
5087
  'margin-right' => '0px',
5097
  'class' => 'child_opt',
5098
  'id' => 'border-line',
5099
  'type' => 'switch',
5100
+ 'title' => esc_html__('Border and Boxshadow', 'accelerated-mobile-pages'),
5101
  'default' => 0,
5102
  'required' => array(
5103
  array('customize-options','=',1)
5108
  'class' => 'child_opt',
5109
  'id' => 'swift-border-line-control',
5110
  'type' => 'text',
5111
+ 'title' => esc_html__('Border', 'accelerated-mobile-pages'),
5112
+ 'tooltip-subtitle' => esc_html__('Border at the bottom', 'accelerated-mobile-pages'),
5113
  'default' => '1',
5114
  'required' => array(
5115
  array('border-line','=',1)
5119
  'class' => 'child_opt',
5120
  'id' => 'swift-border-color-control',
5121
  'type' => 'color_rgba',
5122
+ 'title' => esc_html__('Border Color', 'accelerated-mobile-pages'),
5123
  'default' => array(
5124
  'rgba' => 'rgba(0,0,0,0.12)',
5125
  ),
5131
  'class' => 'child_opt',
5132
  'id' => 'swift-boxshadow-checkbox-control',
5133
  'type' => 'switch',
5134
+ 'title' => esc_html__('Box Shadow', 'accelerated-mobile-pages'),
5135
  'default' => 0,
5136
  'required' => array(
5137
  array('border-line','=',1)
5142
  array(
5143
  'class' => 'child_opt',
5144
  'id' => 'swift-background-scheme',
5145
+ 'title' => esc_html__('Header Background', 'accelerated-mobile-pages'),
5146
  'type' => 'color_rgba',
5147
  'default' => array(
5148
  'rgba' => 'rgba(255, 255, 255, 255)',
5154
  array(
5155
  'class' => 'child_opt',
5156
  'id' => 'swift-header-overlay',
5157
+ 'title' => esc_html__('Menu Background', 'accelerated-mobile-pages'),
5158
  'type' => 'color_rgba',
5159
  'default' => array(
5160
  'rgba' => 'rgba(20, 20, 22, 0.9)',
5166
  array(
5167
  'class' => 'child_opt',
5168
  'id' => 'swift-element-color-control',
5169
+ 'title' => esc_html__('Header Elements', 'accelerated-mobile-pages'),
5170
+ 'tooltip-subtitle' => esc_html__('Color of the Text and Icons on top of Header','accelerated-mobile-pages'),
5171
  'type' => 'color_rgba',
5172
  'default' => array(
5173
  'color' => '#333',
5179
  array(
5180
  'class' => 'child_opt',
5181
  'id' => 'swift-element-overlay-color-control',
5182
+ 'title' => esc_html__('Menu Color', 'accelerated-mobile-pages'),
5183
  'type' => 'color_rgba',
5184
  'default' => array(
5185
  'rgba' => 'rgba(255, 255, 255, 0.8)',
5191
  array(
5192
  'class' => 'child_opt',
5193
  'id' => 'swift-element-menu-border-color',
5194
+ 'title' => esc_html__('Menu Border Color ', 'accelerated-mobile-pages'),
5195
  'type' => 'color_rgba',
5196
  'default' => array(
5197
  'rgba' => 'rgb(47, 47, 47, 1)',
5205
  array(
5206
  'class' => 'child_opt',
5207
  'id' => 'header-position-type',
5208
+ 'title' => esc_html__('Menu Overlay Position', 'accelerated-mobile-pages'),
5209
  'type' => 'select',
5210
  'options'=> array(
5211
  '1' => 'Left',
5220
  'class' => 'child_opt',
5221
  'id' => 'header-overlay-width',
5222
  'type' => 'text',
5223
+ 'title' => esc_html__('Menu Overlay Width', 'accelerated-mobile-pages'),
5224
  'default' => '90%',
5225
  'required' => array(
5226
  array('customize-options','=',1)
5228
  ),
5229
 
5230
  // Tab 2 end
 
 
 
 
 
 
 
 
 
5231
 
5232
  )
5233
  )
5279
 
5280
  // HomePage Section
5281
  Redux::setSection( $opt_name, array(
5282
+ 'title' => esc_html__( 'HomePage', 'accelerated-mobile-pages' ),
5283
  'id' => 'amp-theme-homepage-settings',
5284
  'subsection' => true,
5285
  'fields' => array(
5286
  array(
5287
  'id' => 'ampforwp-homepage-section-general',
5288
  'type' => 'section',
5289
+ 'title' => esc_html__('General', 'accelerated-mobile-pages'),
5290
  'indent' => true,
5291
  'layout_type' => 'accordion',
5292
  'accordion-open'=> 1,
5294
  array(
5295
  'id' => 'amp-design-3-featured-slider',
5296
  'type' => 'switch',
5297
+ 'title' => esc_html__( 'Featured Slider', 'accelerated-mobile-pages' ),
5298
  'required' => array(
5299
  array('amp-design-selector', '=' , '3')
5300
  ),
5303
  array(
5304
  'id' => 'amp-design-3-featured-content',
5305
  'type' => 'select',
5306
+ 'title' => esc_html__( 'Featured Slider Content', 'accelerated-mobile-pages' ),
5307
  'required' => array(
5308
  array('amp-design-3-featured-slider', '=' , '1')
5309
  ),
5318
  'id' => 'amp-design-3-category-selector',
5319
  'type' => 'select',
5320
  'class' => 'child_opt',
5321
+ 'title' => esc_html__( 'Featured Slider Category', 'accelerated-mobile-pages' ),
5322
  'options' => $categories_array,
5323
  'required' => array(
5324
  array('amp-design-selector', '=' , '3'),
5330
  'id' => 'amp-design-3-tag-selector',
5331
  'type' => 'select',
5332
  'class' => 'child_opt',
5333
+ 'title' => esc_html__( 'Featured Slider from Tags', 'accelerated-mobile-pages' ),
5334
  'options' => $tags_array,
5335
  'required' => array(
5336
  array('amp-design-selector', '=' , '3'),
5342
  'id' =>'ampforwp-featur-slider-num-posts',
5343
  'type' =>'text',
5344
  'class' => 'child_opt',
5345
+ 'title' =>esc_html__('Number of Posts','accelerated-mobile-pages'),
5346
  'required' => array(
5347
  array('amp-design-3-featured-slider', '=' , '1'),
5348
  ),
5353
  'id' => 'ampforwp-featur-slider-autop',
5354
  'type' => 'switch',
5355
  'class' => 'child_opt',
5356
+ 'title' => esc_html__('Autoplay', 'accelerated-mobile-pages'),
5357
  'default' => '1',
5358
  'required' => array(
5359
  array('amp-design-3-featured-slider', '=' , '1'),
5363
  'id' =>'ampforwp-featur-slider-autop-delay',
5364
  'type' =>'text',
5365
  'class' => 'child_opt',
5366
+ 'title' =>esc_html__('Delay in Autoplay','accelerated-mobile-pages'),
5367
  'required' => array(
5368
  array('ampforwp-featur-slider-autop', '=' , '1'),
5369
  ),
5375
 
5376
  'id' => 'excerpt-option',
5377
  'type' => 'switch',
5378
+ 'title' => esc_html__('Excerpt', 'accelerated-mobile-pages'),
5379
  'default' => '1',
5380
  ),
5381
  array(
5382
  'id' =>'amp-design-1-excerpt',
5383
  'type' =>'text',
5384
+ 'tooltip-subtitle' =>esc_html__('Enter the number of words Eg: 10','accelerated-mobile-pages'),
5385
+ 'title' =>esc_html__('Excerpt Length','accelerated-mobile-pages'),
5386
  'required' => array(
5387
  array('amp-design-selector', '=' , '1'),
5388
  array('excerpt-option', '=' , '1'),
5393
  array(
5394
  'id' => 'ampforwp-design1-cats-home',
5395
  'type' => 'switch',
5396
+ 'title' => esc_html__('Category label', 'accelerated-mobile-pages'),
5397
  'default' => '0',
5398
  'required' => array(
5399
  array('amp-design-selector', '=' , '1'),
5404
  array(
5405
  'id' =>'amp-design-2-excerpt',
5406
  'type' =>'text',
5407
+ 'tooltip-subtitle' =>esc_html__('Enter the number of words Eg: 10','accelerated-mobile-pages'),
5408
+ 'title' =>esc_html__('Excerpt Length','accelerated-mobile-pages'),
5409
  'required' => array(
5410
  array('amp-design-selector', '=' , '2')),
5411
  'validate' =>'numeric',
5415
 
5416
  'id' => 'excerpt-option-design-2',
5417
  'type' => 'switch',
5418
+ 'title' => esc_html__('Excerpt on Small Screens', 'accelerated-mobile-pages'),
5419
  'default' => '0',
5420
  'required' => array(
5421
  array('amp-design-selector', '=' , '2'),
5427
  array(
5428
  'id' =>'amp-design-3-excerpt',
5429
  'type' =>'text',
5430
+ 'tooltip-subtitle' =>esc_html__('Enter the number of words Eg: 10','accelerated-mobile-pages'),
5431
+ 'title' =>esc_html__('Excerpt Length','accelerated-mobile-pages'),
5432
  'required' => array(
5433
  array('amp-design-selector', '=' , '3'),
5434
  array('excerpt-option', '=' , '1') ),
5438
  array(
5439
  'id' => 'excerpt-option-design-3',
5440
  'type' => 'switch',
5441
+ 'title' => esc_html__('Excerpt on Small Screens', 'accelerated-mobile-pages'),
5442
  'default' => '0',
5443
  'required' => array(
5444
  array('amp-design-selector', '=' , '3'),
5450
  array(
5451
  'id' =>'amp-design-1-featured-time',
5452
  'type' =>'switch',
5453
+ 'title' =>esc_html__('Published Time','accelerated-mobile-pages'),
5454
+ 'tooltip-subtitle' => esc_html__('Display published time of the post on homepage', 'accelerated-mobile-pages'),
5455
  'required' => array(array('amp-design-selector', '=' , '1') ),
5456
  'default' =>'1',
5457
  ),
5459
  array(
5460
  'id' =>'amp-design-3-featured-time',
5461
  'type' =>'switch',
5462
+ 'title' =>esc_html__('Published Time','accelerated-mobile-pages'),
5463
+ 'tooltip-subtitle' => esc_html__('Display published time of the post on homepage', 'accelerated-mobile-pages'),
5464
  'required' => array(array('amp-design-selector', '=' , '3') ),
5465
  'default' =>'1',
5466
  ),
5469
  array(
5470
  'id' => 'ampforwp-homepage-posts-image-modify-size',
5471
  'type' => 'switch',
5472
+ 'title' => esc_html__('Override Homepage Thumbnail Size', 'accelerated-mobile-pages'),
5473
  'required' => array( array( 'amp-design-selector','!=',3 ) ),
5474
  'default' => 0,
5475
  ),
5477
  'class' => 'child_opt child_opt_arrow',
5478
  'id' => 'ampforwp-homepage-posts-design-1-2-width',
5479
  'type' => 'text',
5480
+ 'title' => esc_html__('Image Width', 'accelerated-mobile-pages'),
5481
+ 'tooltip-subtitle' => esc_html__('Defaults to 100', 'accelerated-mobile-pages'),
5482
  'default' => 100,
5483
  'required' => array(
5484
  array('amp-design-selector','!=',3),
5490
  'class' => 'child_opt',
5491
  'id' => 'ampforwp-homepage-posts-design-1-2-height',
5492
  'type' => 'text',
5493
+ 'title' => esc_html__('Image Height', 'accelerated-mobile-pages'),
5494
+ 'tooltip-subtitle' => esc_html__('Defaults to 75', 'accelerated-mobile-pages'),
5495
  'default' => 75,
5496
  'required' => array(
5497
  array('amp-design-selector','!=',3),
5503
  'class' => 'child_opt',
5504
  'id' => 'ampforwp-swift-homepage-posts-width',
5505
  'type' => 'text',
5506
+ 'title' => esc_html__('Image Width', 'accelerated-mobile-pages'),
5507
+ 'tooltip-subtitle' => esc_html__('Defaults to 346', 'accelerated-mobile-pages'),
5508
  'default' => 346,
5509
  'required' => array(
5510
  array('amp-design-selector','=',4),
5515
  'class' => 'child_opt',
5516
  'id' => 'ampforwp-swift-homepage-posts-height',
5517
  'type' => 'text',
5518
+ 'title' => esc_html__('Image Height', 'accelerated-mobile-pages'),
5519
+ 'tooltip-subtitle' => esc_html__('Defaults to 188', 'accelerated-mobile-pages'),
5520
  'default' => 188,
5521
  'required' => array(
5522
  array('amp-design-selector','=',4),
5526
  array(
5527
  'id' => 'ampforwp-homepage-section-loop',
5528
  'type' => 'section',
5529
+ 'title' => esc_html__('Loop Display Controls', 'accelerated-mobile-pages'),
5530
  'indent' => true,
5531
  'layout_type' => 'accordion',
5532
  'accordion-open'=> 1,
5534
  array(
5535
  'id' => 'ampforwp-homepage-loop-type',
5536
  'type' => 'select',
5537
+ 'title' => esc_html__( 'Post Type in Loop', 'accelerated-mobile-pages' ),
5538
  'options' => $ampforwp_home_loop,
5539
  'default' => 'post',
5540
  ),
5541
  array(
5542
  'id' => 'ampforwp-homepage-loop-cats',
5543
  'type' => 'select',
5544
+ 'title' => esc_html__( 'Exclude Categories', 'accelerated-mobile-pages' ),
5545
  'data' => 'categories',
5546
  'multi' => true
5547
  ),
5548
  array(
5549
  'id' => 'ampforwp-homepage-loop-readmore-link',
5550
  'type' => 'switch',
5551
+ 'title' => esc_html__('Read More Link', 'accelerated-mobile-pages'),
5552
  'default' => 0,
5553
  ),
5554
 
5560
  array(
5561
  'id' => 'ampforwp-single_section_1',
5562
  'type' => 'section',
5563
+ 'title' => esc_html__('Single Post Design', 'accelerated-mobile-pages'),
5564
  'indent' => true,
5565
  'layout_type' => 'accordion',
5566
  'accordion-open'=> 1,
5568
  // Swift
5569
  array(
5570
  'id' => 'single-design-type',
5571
+ 'title' => esc_html__('Single Design', 'accelerated-mobile-pages'),
5572
  'type' => 'image_select',
5573
  'options'=> array(
5574
  '1' => array(
5582
 
5583
  ),
5584
  'default'=> '1',
 
 
5585
  'required' => array( array('amp-design-selector', '=' , '4') ),
5586
  ),
5587
 
5588
  array(
5589
  'id' => 'ampforwp-single_section_2',
5590
  'type' => 'section',
5591
+ 'title' => esc_html__('Single Elements', 'accelerated-mobile-pages'),
5592
  'indent' => true,
5593
  'layout_type' => 'accordion',
5594
  'accordion-open'=> 1,
5596
  array(
5597
  'id' => 'swift-featued-image',
5598
  'type' => 'switch',
5599
+ 'title' => esc_html__('Featured Image', 'accelerated-mobile-pages'),
5600
  'default' => 1,
5601
  'required' => array( array('amp-design-selector', '=' , '4') ),
5602
  ),
5603
  array(
5604
  'id' => 'swift-date',
5605
  'type' => 'switch',
5606
+ 'title' => esc_html__('Published Date', 'accelerated-mobile-pages'),
5607
  'default' => 1,
5608
  'required' => array( array('amp-design-selector', '=' , '4') ),
5609
  ),
5612
  'id' => 'ampforwp-amp-img-lightbox',
5613
  'type' => 'switch',
5614
  'default' => '0',
5615
+ 'title' => esc_html__('Lightbox for Images', 'accelerated-mobile-pages'),
5616
  ),
5617
  // Dropcap
5618
  array(
5619
  'id' => 'ampforwp-dropcap',
5620
  'type' => 'switch',
5621
  'default' => '0',
5622
+ 'title' => esc_html__('Dropcap', 'accelerated-mobile-pages'),
5623
  ),
5624
  //Breadcrumb ON/OFF
5625
  array(
5626
  'id' => 'ampforwp-bread-crumb',
5627
  'type' => 'switch',
5628
  'default' => '1',
5629
+ 'title' => esc_html__('Breadcrumbs', 'accelerated-mobile-pages'),
5630
  ),
5631
  //Breadcrumb for Tags
5632
  array(
5633
  'class' => 'child_opt child_opt_arrow',
5634
  'id' => 'ampforwp-bread-crumb-type',
5635
  'type' => 'select',
5636
+ 'tooltip-subtitle' => esc_html__('Select option to enable breadcrumb with tags or category','accelerated-mobile-pages'),
5637
+ 'title' => esc_html__('Select Breadcrumb Type', 'accelerated-mobile-pages'),
5638
  'options' => array(
5639
  'tags' => 'Tags',
5640
  'category' => 'Category',
5647
  'id' => 'ampforwp-cats-single',
5648
  'type' => 'switch',
5649
  'default' => '1',
5650
+ 'title' => esc_html__('Categories', 'accelerated-mobile-pages'),
5651
+ 'tooltip-subtitle' => esc_html__('Enable or Disable Categories in Single', 'accelerated-mobile-pages'),
5652
  'required' => array( array('amp-design-selector', '!=' , '4') )
5653
  ),
5654
  //Tags ON/OFF
5656
  'id' => 'ampforwp-tags-single',
5657
  'type' => 'switch',
5658
  'default' => '1',
5659
+ 'title' => esc_html__('Tags', 'accelerated-mobile-pages'),
5660
  ),
5661
  //Categories and Tags Links
5662
  array(
5663
  'id' => 'ampforwp-cats-tags-links-single',
5664
  'type' => 'switch',
5665
  'default' => '1',
5666
+ 'title' => esc_html__('Categories & Tags Links', 'accelerated-mobile-pages'),
5667
  'required' => array('ampforwp-archive-support', '=' , '1'),
5668
  ),
5669
  // Social Icons ON/OFF
5670
  array(
5671
  'id' => 'enable-single-social-icons',
5672
  'type' => 'switch',
5673
+ 'title' => esc_html__('Sticky Social Icons', 'accelerated-mobile-pages'),
5674
  'default' => 1,
5675
  ),
5676
  // Excerpt ON/OFF
5677
  array(
5678
  'id' => 'enable-excerpt-single',
5679
  'type' => 'switch',
5680
+ 'title' => esc_html__('Excerpt', 'accelerated-mobile-pages'),
5681
  'default' => 0,
5682
+ 'tooltip-subtitle' => esc_html__('Excerpt will be displayed above content', 'accelerated-mobile-pages'),
5683
  ),
5684
  //deselectable next previous links
5685
  array(
5686
  'id' => 'enable-single-next-prev',
5687
  'type' => 'switch',
5688
+ 'title' => esc_html__('Next-Previous Links', 'accelerated-mobile-pages'),
5689
  'default' => 1,
5690
  ),
5691
  // Author name
5692
  array(
5693
  'id' => 'amp-author-name',
5694
  'type' => 'switch',
5695
+ 'title' => esc_html__( 'Author Name', 'accelerated-mobile-pages' ),
5696
  'default' => '1',
5697
  'required' => array('amp-design-selector' , '=' , '4')
5698
  ),
5700
  array(
5701
  'id' => 'amp-author-description',
5702
  'type' => 'switch',
5703
+ 'title' => esc_html__( 'Author Bio', 'accelerated-mobile-pages' ),
5704
  'default' => '1',
5705
  ),
5706
  // Pagination //#1015
5707
  array(
5708
  'id' => 'amp-pagination',
5709
  'type' => 'switch',
5710
+ 'title' => esc_html__( 'Post Pagination', 'accelerated-mobile-pages' ),
5711
  'default' => 1,
5712
+ 'tooltip-subtitle' => esc_html__('Enable the feature to add Pagination in single', 'accelerated-mobile-pages'),
5713
  ),
5714
  array(
5715
  'id' => 'ampforwp-pagination-select',
5716
  'class' => 'child_opt child_opt_arrow',
5717
  'type' => 'select',
5718
+ 'title' => esc_html__('Post Pagination Type', 'accelerated-mobile-pages'),
5719
  'options' => array(
5720
  '1' => 'Numbering',
5721
  '2' => 'Next-Previous',
5726
  array(
5727
  'id' => 'ampforwp-single_section_3',
5728
  'type' => 'section',
5729
+ 'title' => esc_html__('Related Post Settings', 'accelerated-mobile-pages'),
5730
  'indent' => true,
5731
  'layout_type' => 'accordion',
5732
  'accordion-open'=> 1,
5735
  array(
5736
  'id' => 'ampforwp-single-related-posts-switch',
5737
  'type' => 'switch',
5738
+ 'title' => esc_html__( 'Related Posts', 'accelerated-mobile-pages' ),
5739
  'default' => 1,
5740
  ),
5741
  array(
5742
  'id' => 'rp_design_type',
5743
+ 'title' => esc_html__('Related Post Designs', 'accelerated-mobile-pages'),
5744
  'class' => 'child_opt child_opt_arrow',
5745
  'type' => 'image_select',
5746
  'options'=> array(
5751
  '2' => array(
5752
  'alt'=>' Single Design With Sidebar ',
5753
  'img' =>AMPFORWP_PLUGIN_DIR_URI.'/images/rlp-2.png'
5754
+ ),
 
 
 
 
 
5755
  ),
5756
  'default'=> '1',
 
 
5757
  'required' => array( array('amp-design-selector', '=' , '4'),
5758
  array('ampforwp-single-related-posts-switch', '=' , '1'),
5759
  array('single-design-type', '=' , '1')
5763
  'id' => 'ampforwp-single-select-type-of-related',
5764
  'type' => 'select',
5765
  'class' => 'child_opt child_opt_arrow',
5766
+ 'title' => esc_html__('Related Post by', 'accelerated-mobile-pages'),
5767
  'data' => 'page',
5768
+ 'tooltip-subtitle' => esc_html__('select the type of related posts', 'accelerated-mobile-pages'),
5769
  'options' => array(
5770
  '1' => 'Tags',
5771
  '2' => 'Categories',
5773
  'default' => '2',
5774
  'required' => array(
5775
  array('ampforwp-single-related-posts-switch', '=' , '1'),
 
5776
  ),
5777
  ),
5778
  array(
5779
  'id' => 'ampforwp-single-related-posts-image',
5780
  'type' => 'switch',
5781
  'class' => 'child_opt',
5782
+ 'title' => esc_html__('Image', 'accelerated-mobile-pages'),
5783
  'default' => 1,
5784
  'required' => array(
5785
  array('ampforwp-single-related-posts-switch', '=' , '1')
5789
  'id' => 'ampforwp-single-related-posts-excerpt',
5790
  'type' => 'switch',
5791
  'class' => 'child_opt',
5792
+ 'title' => esc_html__('Excerpt', 'accelerated-mobile-pages'),
5793
  'default' => 0,
5794
  'required' => array(
5795
  array('ampforwp-single-related-posts-switch', '=' , '1')
5799
  'id' => 'ampforwp-single-related-posts-link',
5800
  'type' => 'switch',
5801
  'class' => 'child_opt',
5802
+ 'title' => esc_html__('Link to Non-AMP', 'accelerated-mobile-pages'),
5803
  'default' => 0,
5804
  'required' => array(
5805
  array('ampforwp-single-related-posts-switch', '=' , '1')
5809
  'id' => 'ampforwp-single-order-of-related-posts',
5810
  'type' => 'switch',
5811
  'class' => 'child_opt',
5812
+ 'title' => esc_html__('Sort Related Posts Randomly', 'accelerated-mobile-pages'),
5813
  'default' => 0,
5814
  'required' => array(
5815
  array('ampforwp-single-related-posts-switch', '=' , '1'),
 
5816
  ),
5817
  ),
5818
  array(
5819
  'id' => 'ampforwp-number-of-related-posts',
5820
  'type' => 'text',
5821
  'class' => 'child_opt',
5822
+ 'title' => esc_html__('Number of Related Post', 'accelerated-mobile-pages'),
5823
  'validate' => 'numeric',
5824
  'default' => '3',
5825
  'required' => array(
5826
  array('ampforwp-single-related-posts-switch', '=' , '1'),
 
5827
  ),
5828
  ),
5829
  array(
5830
  'id' => 'ampforwp-related-posts-days-switch',
5831
  'type' => 'switch',
5832
  'class' => 'child_opt',
5833
+ 'title' => esc_html__('By Last X Days', 'accelerated-mobile-pages'),
5834
+ 'tooltip-subtitle' => esc_html__('Show Related Posts From Past Few Days', 'accelerated-mobile-pages'),
5835
  'default' => 0,
5836
  'required' => array(
5837
  array('ampforwp-single-related-posts-switch', '=' , '1'),
 
5838
  ),
5839
  ),
5840
  array(
5841
  'id' => 'ampforwp-related-posts-days-text',
5842
  'type' => 'text',
5843
  'class' => 'child_opt',
5844
+ 'title' => esc_html__('Number of Days', 'accelerated-mobile-pages'),
5845
  'validate' => 'numeric',
5846
  'default' => '7',
5847
  'required' => array(
5848
  array('ampforwp-related-posts-days-switch', '=' , '1'),
 
5849
  ),
5850
  ),
5851
  array(
5852
  'id' => 'ampforwp-inline-related-posts',
5853
  'type' => 'switch',
5854
+ 'title' => esc_html__('In-Content Related Post', 'accelerated-mobile-pages'),
5855
+ 'tooltip-subtitle' => esc_html__('Insert Related Posts between the content', 'accelerated-mobile-pages'),
5856
  'default' => 0,
5857
  ),
5858
  array(
5859
  'id' => 'ampforwp-inline-related-posts-type',
5860
  'type' => 'select',
5861
+ 'title' => esc_html__('In-content Related Post by', 'accelerated-mobile-pages'),
5862
  'class' => 'child_opt child_opt_arrow',
5863
  'options' => array(
5864
  '1' => 'Tags',
5871
  'id' => 'ampforwp-inline-related-posts-order',
5872
  'type' => 'switch',
5873
  'class' => 'child_opt',
5874
+ 'title' => esc_html__('Sort Related Posts Randomly', 'accelerated-mobile-pages'),
5875
  'default' => 0,
5876
  'required' => array( array('ampforwp-inline-related-posts', '=' , '1') ),
5877
  ),
5879
  'id' => 'ampforwp-number-of-inline-related-posts',
5880
  'type' => 'text',
5881
  'class' => 'child_opt',
5882
+ 'title' => esc_html__('Display No. of Related Posts', 'accelerated-mobile-pages'),
5883
  'validate' => 'numeric',
5884
  'default' => '3',
5885
  'required' => array( array('ampforwp-inline-related-posts', '=' , '1') ),
5887
  array(
5888
  'id' => 'ampforwp-inline-related-posts-display-type',
5889
  'type' => 'select',
5890
+ 'title' => esc_html__('Related Post Display', 'accelerated-mobile-pages'),
5891
  'class' => 'child_opt child_opt_arrow',
5892
  'options' => array(
5893
  'middle' => 'After 50% of Content',
5900
  'id' => 'ampforwp-related-posts-after-number-of-paragraphs',
5901
  'type' => 'text',
5902
  'class' => 'child_opt',
5903
+ 'title' => esc_html__('Related Post After No. of Paragraphs', 'accelerated-mobile-pages'),
5904
  'validate' => 'numeric',
5905
  'default' => '3',
5906
  'required' => array( array('ampforwp-inline-related-posts', '=' , '1'),array('ampforwp-inline-related-posts-display-type', '=' , 'paragraphs') ),
5908
  array(
5909
  'id' => 'single-tab-2',
5910
  'type' => 'section',
5911
+ 'title' => esc_html__('General', 'accelerated-mobile-pages'),
5912
  'indent' => true,
5913
  'layout_type' => 'accordion',
5914
  'accordion-open'=> 0,
5917
  array(
5918
  'id' => 'ampforwp-author-page-url',
5919
  'type' => 'switch',
5920
+ 'title' => esc_html__( 'Link to Author Pages', 'accelerated-mobile-pages' ),
5921
  'default' => '0',
5922
  ),
5923
  array(
5924
  'id' => 'ampforwp-swift-recent-posts',
5925
  'type' => 'switch',
5926
+ 'title' => esc_html__('Recent Posts', 'accelerated-mobile-pages'),
5927
+ 'tooltip-subtitle' => esc_html__('To enable & disable recent posts', 'accelerated-mobile-pages'),
5928
  'default' => 1,
5929
  ),
5930
  array(
5931
  'id' => 'single-new-features',
5932
  'type' => 'switch',
5933
+ 'title' => esc_html__('Advanced Single Options', 'accelerated-mobile-pages'),
5934
  'default' => 0,
5935
  ),
5936
  array(
5937
  'id' => 'breadcrumb-border',
5938
  'type' => 'switch',
5939
+ 'title' => esc_html__('Breadcrumbs Border', 'accelerated-mobile-pages'),
5940
  'default' => 0,
5941
  'required' => array( array('single-new-features', '=' , '1'),array('amp-design-selector', '=' , '4') ),
5942
  ),
5943
  array(
5944
  'id' => 'ampforwp-underline-content-links',
5945
  'type' => 'switch',
5946
+ 'title' => esc_html__('Underline on Links', 'accelerated-mobile-pages'),
5947
  'default' => 0,
5948
  'required' => array( array('single-new-features', '=' , '1') ),
5949
  ),
5951
  array(
5952
  'id' => 'swift_cnt',
5953
  'type' => 'switch',
5954
+ 'title' => esc_html__( 'Heading Font Sizes', 'accelerated-mobile-pages' ),
5955
  'default' => 0,
5956
+ 'tooltip-subtitle' => esc_html__('Enable the Heading to add Font Sizes in single', 'accelerated-mobile-pages'),
5957
  ),
5958
  array(
5959
  'id' => 'swift_cnt_h1',
5960
  'type' => 'switch',
5961
  'class' => 'child_opt',
5962
+ 'title' => esc_html__('H1', 'accelerated-mobile-pages'),
5963
  'default' => 0,
5964
  'required' => array('swift_cnt' , '=' , '1'),
5965
  ),
5967
  'id' => 'swift_h1_sz',
5968
  'type' => 'text',
5969
  'class' => 'child_opt',
5970
+ 'title' => esc_html__('H1 Font Size', 'accelerated-mobile-pages'),
5971
  'default' => '28px',
5972
  'required' => array('swift_cnt_h1' , '=' , '1'),
5973
  array('swift_cnt' , '=' , '1')
5976
  'id' => 'swift_cnt_h2',
5977
  'type' => 'switch',
5978
  'class' => 'child_opt',
5979
+ 'title' => esc_html__('H2', 'accelerated-mobile-pages'),
5980
  'default' => 0,
5981
  'required' => array('swift_cnt' , '=' , '1'),
5982
  ),
5984
  'id' => 'swift_h2_sz',
5985
  'type' => 'text',
5986
  'class' => 'child_opt',
5987
+ 'title' => esc_html__('H2 Font Size', 'accelerated-mobile-pages'),
5988
  'default' => '25px',
5989
  'required' => array('swift_cnt_h2' , '=' , '1'),
5990
  array('swift_cnt' , '=' , '1')
5993
  'id' => 'swift_cnt_h3',
5994
  'type' => 'switch',
5995
  'class' => 'child_opt',
5996
+ 'title' => esc_html__('H3', 'accelerated-mobile-pages'),
5997
  'default' => 0,
5998
  'required' => array('swift_cnt' , '=' , '1'),
5999
  ),
6001
  'id' => 'swift_h3_sz',
6002
  'type' => 'text',
6003
  'class' => 'child_opt',
6004
+ 'title' => esc_html__('H3 Font Size', 'accelerated-mobile-pages'),
6005
  'default' => '22px',
6006
  'required' => array('swift_cnt_h3' , '=' , '1'),
6007
  array('swift_cnt' , '=' , '1')
6010
  'id' => 'swift_cnt_h4',
6011
  'type' => 'switch',
6012
  'class' => 'child_opt',
6013
+ 'title' => esc_html__('H4', 'accelerated-mobile-pages'),
6014
  'default' => 0,
6015
  'required' => array('swift_cnt' , '=' , '1'),
6016
  ),
6018
  'id' => 'swift_h4_sz',
6019
  'type' => 'text',
6020
  'class' => 'child_opt',
6021
+ 'title' => esc_html__('H4 Font Size', 'accelerated-mobile-pages'),
6022
  'default' => '19px',
6023
  'required' => array('swift_cnt_h4' , '=' , '1'),
6024
  array('swift_cnt' , '=' , '1')
6027
  'id' => 'swift_cnt_h5',
6028
  'type' => 'switch',
6029
  'class' => 'child_opt',
6030
+ 'title' => esc_html__('H5', 'accelerated-mobile-pages'),
6031
  'default' => 0,
6032
  'required' => array('swift_cnt' , '=' , '1'),
6033
  ),
6035
  'id' => 'swift_h5_sz',
6036
  'type' => 'text',
6037
  'class' => 'child_opt',
6038
+ 'title' => esc_html__('H5 Font Size', 'accelerated-mobile-pages'),
6039
  'default' => '17px',
6040
  'required' => array('swift_cnt_h5' , '=' , '1'),
6041
  array('swift_cnt' , '=' , '1')
6044
  'id' => 'swift_cnt_h6',
6045
  'type' => 'switch',
6046
  'class' => 'child_opt',
6047
+ 'title' => esc_html__('H6', 'accelerated-mobile-pages'),
6048
  'default' => 0,
6049
  'required' => array('swift_cnt' , '=' , '1'),
6050
  ),
6052
  'id' => 'swift_h6_sz',
6053
  'type' => 'text',
6054
  'class' => 'child_opt',
6055
+ 'title' => esc_html__('H6 Font Size', 'accelerated-mobile-pages'),
6056
  'default' => '15px',
6057
  'required' => array('swift_cnt_h6' , '=' , '1'),
6058
  array('swift_cnt' , '=' , '1')
6060
  array(
6061
  'id' => 'ampforwp-single_section_5',
6062
  'type' => 'section',
6063
+ 'title' => esc_html__('WordPress Content Gallery', 'accelerated-mobile-pages'),
6064
  'indent' => true,
6065
  'layout_type' => 'accordion',
6066
  'accordion-open'=> 1,
6067
  ),
6068
  array(
6069
  'id' => 'ampforwp-gallery-design-type',
6070
+ 'title' => esc_html__('Select Gallery Designs', 'accelerated-mobile-pages'),
6071
  'class' => 'child_opt child_opt_arrow',
6072
  'type' => 'image_select',
6073
  'options'=> array(
6086
 
6087
  ),
6088
  'default'=> '1',
 
 
6089
  'required' => array( array('amp-design-selector', '=' , '4'),
6090
 
6091
  ),
6093
  array(
6094
  'id' => 'single-sneakp-section',
6095
  'type' => 'section',
6096
+ 'title' => esc_html__('Content Sneak Peek', 'accelerated-mobile-pages'),
6097
  'indent' => true,
6098
  'layout_type' => 'accordion',
6099
  'accordion-open'=> 1,
6101
  array(
6102
  'id' => 'content-sneak-peek',
6103
  'type' => 'switch',
6104
+ 'title' => esc_html__('Content Sneak Peek', 'accelerated-mobile-pages'),
 
6105
  'default' => 0,
6106
  ),
6107
  array(
6108
  'id' => 'content-sneak-peek-height',
6109
  'type' => 'text',
6110
  'class' => 'child_opt',
6111
+ 'title' => esc_html__('Content Height', 'accelerated-mobile-pages'),
6112
  'default' => '600px',
6113
  'required' => array('content-sneak-peek' , '=' , '1'),
6114
  ),
6116
  'id' => 'content-sneak-peek-btn-text',
6117
  'type' => 'text',
6118
  'class' => 'child_opt',
6119
+ 'title' => esc_html__('Button Text', 'accelerated-mobile-pages'),
6120
  'default' => 'Show Full Article',
6121
  'required' => array('content-sneak-peek' , '=' , '1'),
6122
  ),
6123
  array(
6124
  'id' => 'content-sneak-peek-txt-color',
6125
+ 'title' => esc_html__('Text Color', 'accelerated-mobile-pages'),
6126
+ 'tooltip-subtitle' => esc_html__('Choose the color for button\'s text','accelerated-mobile-pages'),
6127
  'type' => 'color_rgba',
6128
  'class' => 'child_opt',
6129
  'default' => array(
6135
  ),
6136
  array(
6137
  'id' => 'content-sneak-peek-btn-color',
6138
+ 'title' => esc_html__('Button Color', 'accelerated-mobile-pages'),
6139
+ 'tooltip-subtitle' => esc_html__('Choose the color for button','accelerated-mobile-pages'),
6140
  'type' => 'color_rgba',
6141
  'class' => 'child_opt',
6142
  'default' => array(
6146
  array('content-sneak-peek', '=' , '1')
6147
  )
6148
  ),
 
 
 
 
 
 
 
 
 
 
 
6149
  $fields = array(
6150
  'id' => 'info_normal',
6151
  'type' => 'info',
6153
  'desc' => $single_extension_listing
6154
  )
6155
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6156
  // Single Section
6157
  Redux::setSection( $opt_name, array(
6158
+ 'title' => esc_html__( 'Single', 'accelerated-mobile-pages' ),
 
6159
  'id' => 'amp-single',
6160
  'subsection' => true,
6161
  'fields' => $single_page_options
6164
 
6165
  // Footer Section
6166
  Redux::setSection( $opt_name, array(
6167
+ 'title' => esc_html__( 'Footer', 'accelerated-mobile-pages' ),
6168
  'id' => 'amp-theme-footer-settings',
6169
  'subsection' => true,
6170
  'fields' => array(
6171
  array(
6172
  'id' => 'footer-tab-1',
6173
  'type' => 'section',
6174
+ 'title' => esc_html__('Footer Design', 'accelerated-mobile-pages'),
6175
  'indent' => true,
6176
  'layout_type' => 'accordion',
6177
  'accordion-open'=> 1,
6179
  // Swift
6180
  array(
6181
  'id' => 'footer-type',
6182
+ 'title' => esc_html__('Footer Type', 'accelerated-mobile-pages'),
6183
  'type' => 'image_select',
6184
  'options'=> array(
6185
  '1' => array(
6188
  ),
6189
  ),
6190
  'default'=> '1',
 
 
6191
  'required' => array( array('amp-design-selector', '=' , '4') ),
6192
  ),
6193
  array(
6194
  'id' => 'footer-tab-3',
6195
  'type' => 'section',
6196
+ 'title' => esc_html__('General', 'accelerated-mobile-pages'),
6197
  'indent' => true,
6198
  'layout_type' => 'accordion',
6199
  'accordion-open'=> 1,
6202
  array(
6203
  'id' => 'swift-menu',
6204
  'type' => 'switch',
6205
+ 'title' => esc_html__('Menu', 'accelerated-mobile-pages'),
6206
  'default' => 1,
6207
  'required' => array( array('amp-design-selector', '=' , '4') ),
6208
+ 'tooltip-subtitle' => esc_html__( 'Add Menus to your AMP pages by clicking on this <a href="'.trailingslashit(get_admin_url()).'nav-menus.php?action=locations">link</a>' , 'accelerated-mobile-pages'),
6209
  ),
6210
  array(
6211
  'id' => 'amp-footer-link-non-amp-page',
6212
  'type' => 'switch',
6213
+ 'title' => esc_html__('Link to Non-AMP page in Footer', 'accelerated-mobile-pages'),
6214
  'true' => 'true',
6215
  'false' => 'false',
6216
  'default' => 1
6219
  array(
6220
  'id' => 'ampforwp-footer-top',
6221
  'type' => 'switch',
6222
+ 'title' => esc_html__('Back to Top link', 'accelerated-mobile-pages'),
6223
  'true' => 'true',
6224
  'false' => 'false',
6225
  'default' => 1,
6230
  array(
6231
  'id' => 'ampforwp-footer-top-design3',
6232
  'type' => 'switch',
6233
+ 'title' => esc_html__('Back to Top link', 'accelerated-mobile-pages'),
6234
+ 'tooltip-subtitle' => esc_html__('Enable / Disable Link to top of the page in the footer', 'accelerated-mobile-pages'),
6235
  'true' => 'true',
6236
  'false' => 'false',
6237
  'default' => 0,
6241
  array(
6242
  'id' => 'amp-design-3-credit-link',
6243
  'type' => 'switch',
6244
+ 'title' => esc_html__( 'Credit link', 'accelerated-mobile-pages' ),
6245
  'required' => array(
6246
  array('amp-design-selector', '=' , '3')
6247
  ),
6250
  array(
6251
  'id' => 'ampforwp-nofollow-view-nonamp',
6252
  'type' => 'switch',
6253
+ 'title' => esc_html__('Make "View Non-AMP" link nofollow', 'accelerated-mobile-pages'),
6254
  'default' => 0
6255
  ),
6256
  array(
6257
  'id' => 'footer-tab-2',
6258
  'type' => 'section',
6259
+ 'title' => esc_html__('Advanced Footer Options', 'accelerated-mobile-pages'),
6260
  'indent' => true,
 
 
6261
  'required' => array(
6262
  array('amp-design-selector', '=' , '4')
6263
  ),
6267
  array(
6268
  'id' => 'footer-customize-options',
6269
  'type' => 'switch',
6270
+ 'title' => esc_html__('Advanced Footer Design', 'accelerated-mobile-pages'),
6271
  'default' => 0,
6272
  'required' => array( array('amp-design-selector', '=' , '4') ),
6273
  ),
6274
  array(
6275
  'id' => 'swift-footer-txt-clr',
6276
+ 'title' => esc_html__('Footer Text Color', 'accelerated-mobile-pages'),
6277
  'type' => 'color_rgba',
6278
  'default' => array(
6279
  'color' => '#888888',
6284
  ),
6285
  array(
6286
  'id' => 'swift-footer-link-clr',
6287
+ 'title' => esc_html__('Footer Link Color', 'accelerated-mobile-pages'),
6288
  'type' => 'color_rgba',
6289
  'default' => array(
6290
  'color' => '#fcc118',
6295
  ),
6296
  array(
6297
  'id' => 'swift-footer-link-hvr',
6298
+ 'title' => esc_html__('Footer Link Hover Color', 'accelerated-mobile-pages'),
6299
  'type' => 'color_rgba',
6300
  'default' => array(
6301
  'color' => '#888888',
6306
  ),
6307
  array(
6308
  'id' => 'swift-footer-bg',
6309
+ 'title' => esc_html__('Footer 1 Background', 'accelerated-mobile-pages'),
6310
  'type' => 'color_rgba',
6311
  'default' => array(
6312
  'color' => '#182733',
6318
  array(
6319
  'id' =>"ftr1-gapping",
6320
  'type' =>'spacing',
6321
+ 'title' => esc_html__('Footer 1 Gapping', 'accelerated-mobile-pages'),
6322
  'units' => array('px','%'),
6323
  'default' =>array(
6324
  'padding-top' => '70px',
6334
  array(
6335
  'id' => 'swift-footer1-cntnsize',
6336
  'type' => 'text',
6337
+ 'title' => esc_html__('Footer 1 Font Size', 'accelerated-mobile-pages'),
6338
  'default' => '14px',
6339
  'required' => array(
6340
  array('footer-customize-options','=',1)
6343
  array(
6344
  'id' => 'swift-head-size',
6345
  'type' => 'text',
6346
+ 'title' => esc_html__('Footer 1 Heading Font Size', 'accelerated-mobile-pages'),
6347
  'default' => '12px',
6348
  'required' => array(
6349
  array('footer-customize-options','=',1)
6352
  array(
6353
  'id' => 'swift-head-fntwgth',
6354
  'type' => 'text',
6355
+ 'title' => esc_html__('Footer 1 Heading Font Weight', 'accelerated-mobile-pages'),
6356
  'default' => '500',
6357
  'required' => array(
6358
  array('footer-customize-options','=',1)
6360
  ),
6361
  array(
6362
  'id' => 'swift-footer-heading-clr',
6363
+ 'title' => esc_html__('Footer 1 Heading Color', 'accelerated-mobile-pages'),
6364
  'type' => 'color_rgba',
6365
  'default' => array(
6366
  'color' => '#999',
6371
  ),
6372
  array(
6373
  'id' => 'swift-footer2-bg',
6374
+ 'title' => esc_html__('Footer 2 Background', 'accelerated-mobile-pages'),
6375
  'type' => 'color_rgba',
6376
  'default' => array(
6377
  'color' => '#2e2b2e',
6383
  array(
6384
  'id' =>"ftr2-gapping",
6385
  'type' =>'spacing',
6386
+ 'title' => esc_html__('Footer 2 Gapping', 'accelerated-mobile-pages'),
6387
  'units' => array('px','%'),
6388
  'default' =>array(
6389
  'padding-top' => '50px',
6399
  array(
6400
  'id' => 'swift-footer2-fntsize',
6401
  'type' => 'text',
6402
+ 'title' => esc_html__('Footer 2 Font Size', 'accelerated-mobile-pages'),
6403
  'default' => '12px',
6404
  'required' => array(
6405
  array('footer-customize-options','=',1)
6407
  ),
6408
  array(
6409
  'id' => 'swift-footer-brdrclr',
6410
+ 'title' => esc_html__('Footer 2 Border Color', 'accelerated-mobile-pages'),
6411
  'type' => 'color_rgba',
6412
  'default' => array(
6413
  'color' => '#eee',
6418
  ),
6419
  array(
6420
  'id' => 'footer2-position-type',
6421
+ 'title' => esc_html__('Footer 2 Menu Position', 'accelerated-mobile-pages'),
6422
  'type' => 'select',
6423
  'options'=> array(
6424
  '1' => 'Center',
6435
 
6436
  // Page Section
6437
  Redux::setSection( $opt_name, array(
6438
+ 'title' => esc_html__( 'Page', 'accelerated-mobile-pages' ),
6439
  'id' => 'amp-theme-page-settings',
6440
  'subsection' => true,
6441
  'fields' => array(
 
 
 
 
 
 
 
6442
  array(
6443
  'id' => 'page-tab-1',
6444
  'type' => 'section',
6445
+ 'title' => esc_html__('General', 'accelerated-mobile-pages'),
6446
  'indent' => true,
6447
  'layout_type' => 'accordion',
6448
  'accordion-open'=> 1,
6453
  'id' => 'featured_image_swift_page',
6454
  'type' => 'switch',
6455
  'default' => '0',
6456
+ 'title' => esc_html__('Featured Image', 'accelerated-mobile-pages'),
6457
+ 'tooltip-subtitle' => esc_html__('Enable Featured Image on Pages.'),
6458
  'required' => array('amp-design-selector','=','4'),
6459
  ),
6460
  array(
6461
  'id' => 'meta_page',
6462
  'type' => 'switch',
6463
  'default' => '0',
6464
+ 'title' => esc_html__('Meta Information', 'accelerated-mobile-pages'),
6465
  ),
6466
  array(
6467
  'id' => 'ampforwp_subpages_list',
6468
  'type' => 'switch',
6469
  'default' => '0',
6470
+ 'title' => esc_html__('Subpages/ChildPages', 'accelerated-mobile-pages'),
6471
+ 'tooltip-subtitle' => esc_html__('Shows a List of Subpages'),
6472
  ),
6473
  array(
6474
  'id' => 'ampforwp-page-social',
6475
  'type' => 'switch',
6476
  'default' => '0',
6477
+ 'title' => esc_html__('Social Icons', 'accelerated-mobile-pages'),
6478
+ 'tooltip-subtitle' => esc_html__('Enable Social Sharing on Pages'),
6479
  ),
6480
  array(
6481
  'id' => 'ampforwp-page-sticky-social',
6482
  'type' => 'switch',
6483
  'default' => '0',
6484
+ 'title' => esc_html__('Sticky Social Icons', 'accelerated-mobile-pages'),
6485
+ 'tooltip-subtitle' => esc_html__('Enable Social Sticky Icons on Pages'),
6486
  ),
6487
  )
6488
  ));
6489
 
6490
  // Social Section
6491
  Redux::setSection( $opt_name, array(
6492
+ 'title' => esc_html__( 'Social', 'accelerated-mobile-pages' ),
6493
  'id' => 'amp-social',
6494
+ 'desc' => esc_html__('All the Social sharing and the social profile related settings are here','accelerated-mobile-pages'),
6495
  'subsection' => true,
6496
  'fields' => array(
6497
  array(
6498
  'id' => 'social-shre',
6499
  'type' => 'section',
6500
+ 'title' => esc_html__('Social Sharing', 'accelerated-mobile-pages'),
6501
  'indent' => true,
 
 
6502
  'layout_type' => 'accordion',
6503
  'accordion-open'=> 1,
6504
  ),
6506
  array(
6507
  'id' => 'swift-social-position',
6508
  'type' => 'select',
6509
+ 'title' => esc_html__( 'Position', 'accelerated-mobile-pages' ),
6510
  'options' => array(
6511
  'default' => 'Single Sidebar (left side)',
6512
  'above-content' => 'Above Content',
6519
  array(
6520
  'id' => 'ampforwp-social-share-amp',
6521
  'type' => 'switch',
6522
+ 'title' => esc_html__('Social Share links to AMP', 'accelerated-mobile-pages'),
6523
  'default' => 0,
6524
  ),
6525
  // Facebook Like
6526
  array(
6527
  'id' => 'ampforwp-facebook-like-button',
6528
  'type' => 'switch',
6529
+ 'title' => esc_html__('Facebook Like Button', 'accelerated-mobile-pages'),
6530
  'default' => 0,
6531
  ),
6532
  // Facebook ON/OFF
6534
  'id' => 'enable-single-facebook-share',
6535
  'type' => 'switch',
6536
  //'required' => array('enable-single-social-icons', '=' , '1'),
6537
+ 'title' => esc_html__('Facebook', 'accelerated-mobile-pages'),
6538
  'default' => 0,
6539
  ),
6540
  // Facebook app ID
6541
  array(
6542
  'id' => 'amp-facebook-app-id',
6543
+ 'title' => esc_html__('Facebook App ID', 'accelerated-mobile-pages'),
6544
+ 'tooltip-subtitle' => esc_html__('In order to use Facebook share you need to register an app ID, <a href="https://developers.facebook.com/apps" target="_blank" style="color:#93FCFF;" >You can register one here: https://developers.facebook.com/apps.', 'accelerated-mobile-pages'),
6545
  'type' => 'text',
6546
  'required' => array('enable-single-facebook-share', '=' , '1'),
6547
+ 'placeholder' => esc_html__('Enter your facebook app id','accelerated-mobile-pages'),
6548
  'default' => '',
6549
  'required' => array(
6550
  array('amp-design-selector', '!=' , '4')
6554
  array(
6555
  'id' => 'enable-single-twitter-share',
6556
  'type' => 'switch',
6557
+ 'title' => esc_html__('Twitter', 'accelerated-mobile-pages'),
6558
  'default' => 1,
6559
  ),
6560
  array(
6561
  'id' => 'enable-single-twitter-share-handle',
6562
  'type' => 'text',
6563
+ 'title' => esc_html__('Twitter Handle', 'accelerated-mobile-pages'),
6564
  'required' => array('enable-single-twitter-share', '=' , '1'),
6565
+ 'placeholder' => esc_html__('Eg: @xyx','accelerated-mobile-pages'),
6566
  'default' => '',
6567
  ),
6568
  array(
6569
  'id' => 'enable-single-twitter-share-link',
6570
  'type' => 'switch',
6571
+ 'title' => esc_html__('Pretty Permalinks for Twitter Share?', 'accelerated-mobile-pages'),
6572
+ 'tooltip-subtitle' => esc_html__('Enable this to have pretty links for twitter sharing'),
6573
  'default' => 0,
6574
  'required' => array('enable-single-twitter-share', '=' , '1'),
6575
  ),
6577
  array(
6578
  'id' => 'enable-single-gplus-share',
6579
  'type' => 'switch',
6580
+ 'title' => esc_html__('GooglePlus', 'accelerated-mobile-pages'),
6581
  'default' => 1,
6582
  ),
6583
  // Email ON/OFF
6584
  array(
6585
  'id' => 'enable-single-email-share',
6586
  'type' => 'switch',
6587
+ 'title' => esc_html__('Email', 'accelerated-mobile-pages'),
6588
  'default' => 1,
6589
  ),
6590
  // Pinterest ON/OFF
6591
  array(
6592
  'id' => 'enable-single-pinterest-share',
6593
  'type' => 'switch',
6594
+ 'title' => esc_html__('Pinterest', 'accelerated-mobile-pages'),
6595
  'default' => 1,
6596
  ),
6597
  // LinkedIn ON/OFF
6598
  array(
6599
  'id' => 'enable-single-linkedin-share',
6600
  'type' => 'switch',
6601
+ 'title' => esc_html__('LinkedIn', 'accelerated-mobile-pages'),
6602
  'default' => 1,
6603
  ),
6604
  // WhatsApp
6605
  array(
6606
  'id' => 'enable-single-whatsapp-share',
6607
  'type' => 'switch',
6608
+ 'title' => esc_html__('WhatsApp', 'accelerated-mobile-pages'),
6609
  'default' => 1,
6610
  ),
6611
  // LINE
6612
  array(
6613
  'id' => 'enable-single-line-share',
6614
  'type' => 'switch',
6615
+ 'title' => esc_html__('Line', 'accelerated-mobile-pages'),
6616
  'default' => 1,
6617
  ),
6618
  // VKontakte
6619
  array(
6620
  'id' => 'enable-single-vk-share',
6621
  'type' => 'switch',
6622
+ 'title' => esc_html__('VKontakte', 'accelerated-mobile-pages'),
6623
  'default' => 0,
6624
  ),
6625
  // Odnoklassniki
6626
  array(
6627
  'id' => 'enable-single-odnoklassniki-share',
6628
  'type' => 'switch',
6629
+ 'title' => esc_html__('Odnoklassniki', 'accelerated-mobile-pages'),
6630
  'default' => 0,
6631
  ),
6632
  // Reddit
6633
  array(
6634
  'id' => 'enable-single-reddit-share',
6635
  'type' => 'switch',
6636
+ 'title' => esc_html__('Reddit', 'accelerated-mobile-pages'),
6637
  'default' => 0,
6638
  ),
6639
  // Tumblr
6640
  array(
6641
  'id' => 'enable-single-tumblr-share',
6642
  'type' => 'switch',
6643
+ 'title' => esc_html__('Tumblr', 'accelerated-mobile-pages'),
6644
  'default' => 0,
6645
  ),
6646
  // Telegram
6647
  array(
6648
  'id' => 'enable-single-telegram-share',
6649
  'type' => 'switch',
6650
+ 'title' => esc_html__('Telegram', 'accelerated-mobile-pages'),
6651
  'default' => 0,
6652
  ),
6653
  // Digg
6654
  array(
6655
  'id' => 'enable-single-digg-share',
6656
  'type' => 'switch',
6657
+ 'title' => esc_html__('Digg', 'accelerated-mobile-pages'),
6658
  'default' => 0,
6659
  ),
6660
  // StumbleUpon
6661
  array(
6662
  'id' => 'enable-single-stumbleupon-share',
6663
  'type' => 'switch',
6664
+ 'title' => esc_html__('StumbleUpon', 'accelerated-mobile-pages'),
6665
  'default' => 0,
6666
  ),
6667
  // Wechat
6668
  array(
6669
  'id' => 'enable-single-wechat-share',
6670
  'type' => 'switch',
6671
+ 'title' => esc_html__('Wechat', 'accelerated-mobile-pages'),
6672
  'default' => 0,
6673
  ),
6674
  // Viber
6675
  array(
6676
  'id' => 'enable-single-viber-share',
6677
  'type' => 'switch',
6678
+ 'title' => esc_html__('Viber', 'accelerated-mobile-pages'),
6679
  'default' => 0,
6680
  ),
6681
  // Hatena BookMark
6682
  array(
6683
  'id' => 'enable-single-hatena-bookmarks',
6684
  'type' => 'switch',
6685
+ 'title' => esc_html__('Hatena Bookmarks', 'accelerated-mobile-pages'),
6686
  'default' => 0,
6687
  ),
6688
  // Pocket
6689
  array(
6690
  'id' => 'enable-single-pocket-share',
6691
  'type' => 'switch',
6692
+ 'title' => esc_html__('Pocket', 'accelerated-mobile-pages'),
6693
  'default' => 0,
6694
  ),
6695
  // Yummly
6696
  array(
6697
  'id' => 'enable-single-yummly-share',
6698
  'type' => 'switch',
6699
+ 'title' => esc_html__('Yummly', 'accelerated-mobile-pages'),
6700
  'default' => 0,
6701
  'required' => array(
6702
  array('amp-design-selector', '=' , '4')
6705
  array(
6706
  'id' => 'social-prfl',
6707
  'type' => 'section',
6708
+ 'title' => esc_html__('Social Media Profile Links', 'accelerated-mobile-pages'),
6709
  'indent' => true,
 
 
6710
  'required' => array(
6711
  array('amp-design-selector', '=' , '4')
6712
  ),
6716
  array(
6717
  'id' => 'menu-social',
6718
  'type' => 'switch',
6719
+ 'title' => esc_html__('Menu Social Profile', 'accelerated-mobile-pages'),
6720
  'default' => 0,
6721
  'required' => array(
6722
  array('amp-design-selector', '=' , '4')
6725
  array(
6726
  'id' => 'enbl-fb',
6727
  'type' => 'switch',
6728
+ 'title' => esc_html__('Facebook', 'accelerated-mobile-pages'),
6729
  'default' => 1,
6730
  'required' => array(
6731
  array('menu-social', '=' ,1)
6734
  array(
6735
  'id' => 'enbl-fb-prfl-url',
6736
  'type' => 'text',
6737
+ 'title' => esc_html__('Facebook URL', 'accelerated-mobile-pages'),
6738
  'default' => '#',
6739
  'required' => array(
6740
  array('enbl-fb','=',1)
6743
  array(
6744
  'id' => 'enbl-tw',
6745
  'type' => 'switch',
6746
+ 'title' => esc_html__('Twitter', 'accelerated-mobile-pages'),
6747
  'default' => 1,
6748
  'required' => array(
6749
  array('menu-social','=',1)
6752
  array(
6753
  'id' => 'enbl-tw-prfl-url',
6754
  'type' => 'text',
6755
+ 'title' => esc_html__('Twitter URL', 'accelerated-mobile-pages'),
6756
  'default' => '#',
6757
  'required' => array(
6758
  array('enbl-tw','=',1)
6761
  array(
6762
  'id' => 'enbl-gol',
6763
  'type' => 'switch',
6764
+ 'title' => esc_html__('Google', 'accelerated-mobile-pages'),
6765
  'default' => 1,
6766
  'required' => array(
6767
  array('menu-social','=',1)
6770
  array(
6771
  'id' => 'enbl-gol-prfl-url',
6772
  'type' => 'text',
6773
+ 'title' => esc_html__('Google URL', 'accelerated-mobile-pages'),
6774
  'default' => '#',
6775
  'required' => array(
6776
  array('enbl-gol','=',1)
6779
  array(
6780
  'id' => 'enbl-lk',
6781
  'type' => 'switch',
6782
+ 'title' => esc_html__('Linkedin', 'accelerated-mobile-pages'),
6783
  'default' => 1,
6784
  'required' => array(
6785
  array('menu-social','=',1)
6788
  array(
6789
  'id' => 'enbl-lk-prfl-url',
6790
  'type' => 'text',
6791
+ 'title' => esc_html__('Linkedin URL', 'accelerated-mobile-pages'),
6792
  'default' => '#',
6793
  'required' => array(
6794
  array('enbl-lk','=',1)
6797
  array(
6798
  'id' => 'enbl-pt',
6799
  'type' => 'switch',
6800
+ 'title' => esc_html__('Pinterest', 'accelerated-mobile-pages'),
6801
  'default' => 0,
6802
  'required' => array(
6803
  array('menu-social','=',1)
6806
  array(
6807
  'id' => 'enbl-pt-prfl-url',
6808
  'type' => 'text',
6809
+ 'title' => esc_html__('Pinterest URL', 'accelerated-mobile-pages'),
6810
  'default' => '#',
6811
  'required' => array(
6812
  array('enbl-pt','=',1)
6815
  array(
6816
  'id' => 'enbl-yt',
6817
  'type' => 'switch',
6818
+ 'title' => esc_html__('Youtube', 'accelerated-mobile-pages'),
6819
  'default' => 0,
6820
  'required' => array(
6821
  array('menu-social','=',1)
6824
  array(
6825
  'id' => 'enbl-yt-prfl-url',
6826
  'type' => 'text',
6827
+ 'title' => esc_html__('Youtube URL', 'accelerated-mobile-pages'),
6828
  'default' => '#',
6829
  'required' => array(
6830
  array('enbl-yt','=',1)
6833
  array(
6834
  'id' => 'enbl-inst',
6835
  'type' => 'switch',
6836
+ 'title' => esc_html__('Instagram', 'accelerated-mobile-pages'),
6837
  'default' => 0,
6838
  'required' => array(
6839
  array('menu-social','=',1)
6842
  array(
6843
  'id' => 'enbl-inst-prfl-url',
6844
  'type' => 'text',
6845
+ 'title' => esc_html__('Instagram URL', 'accelerated-mobile-pages'),
6846
  'default' => '#',
6847
  'required' => array(
6848
  array('enbl-inst','=',1)
6851
  array(
6852
  'id' => 'enbl-vk',
6853
  'type' => 'switch',
6854
+ 'title' => esc_html__('VKontakte', 'accelerated-mobile-pages'),
6855
  'default' => 0,
6856
  'required' => array(
6857
  array('menu-social','=',1)
6860
  array(
6861
  'id' => 'enbl-vk-prfl-url',
6862
  'type' => 'text',
6863
+ 'title' => esc_html__('VKontakte URL', 'accelerated-mobile-pages'),
6864
  'default' => '#',
6865
  'required' => array(
6866
  array('enbl-vk','=',1)
6869
  array(
6870
  'id' => 'enbl-rd',
6871
  'type' => 'switch',
6872
+ 'title' => esc_html__('Reddit', 'accelerated-mobile-pages'),
6873
  'default' => 0,
6874
  'required' => array(
6875
  array('menu-social','=',1)
6878
  array(
6879
  'id' => 'enbl-rd-prfl-url',
6880
  'type' => 'text',
6881
+ 'title' => esc_html__('Reddit URL', 'accelerated-mobile-pages'),
6882
  'default' => '#',
6883
  'required' => array(
6884
  array('enbl-rd','=',1)
6887
  array(
6888
  'id' => 'enbl-tbl',
6889
  'type' => 'switch',
6890
+ 'title' => esc_html__('Tumblr', 'accelerated-mobile-pages'),
6891
  'default' => 0,
6892
  'required' => array(
6893
  array('menu-social','=',1)
6896
  array(
6897
  'id' => 'enbl-tbl-prfl-url',
6898
  'type' => 'text',
6899
+ 'title' => esc_html__('Tumblr URL', 'accelerated-mobile-pages'),
6900
  'default' => '#',
6901
  'required' => array(
6902
  array('enbl-tbl','=',1)
6905
  array(
6906
  'id' => 'social-media-profiles-subsection',
6907
  'type' => 'section',
6908
+ 'title' => esc_html__('Social Media Profiles (Design #3)', 'accelerated-mobile-pages'),
6909
+ 'tooltip-subtitle' => esc_html__('Please enter your personal/organizational social media profiles here', 'accelerated-mobile-pages'),
6910
  'indent' => true,
6911
  'required' => array(
6912
  array('amp-design-selector', '=' , '3')
6918
  array(
6919
  'id' => 'enable-single-twittter-profile',
6920
  'type' => 'switch',
6921
+ 'title' => esc_html__('Twitter ', 'accelerated-mobile-pages'),
6922
  'default' => 1,
6923
  'required' => array(
6924
  array('amp-design-selector', '=' , '3')
6927
  array(
6928
  'id' => 'enable-single-twittter-profile-url',
6929
  'type' => 'text',
6930
+ 'title' => esc_html__('Twitter URL', 'accelerated-mobile-pages'),
6931
  'default' => '#',
6932
  'required' => array(
6933
  array('amp-design-selector', '=' , '3'),
6938
  array(
6939
  'id' => 'enable-single-facebook-profile',
6940
  'type' => 'switch',
6941
+ 'title' => esc_html__('Facebook ', 'accelerated-mobile-pages'),
6942
  'default' => 1,
6943
  'required' => array(
6944
  array('amp-design-selector', '=' , '3')
6947
  array(
6948
  'id' => 'enable-single-facebook-profile-url',
6949
  'type' => 'text',
6950
+ 'title' => esc_html__('Facebook URL', 'accelerated-mobile-pages'),
6951
  'default' => '#',
6952
  'required' => array(
6953
  array('amp-design-selector', '=' , '3'),
6958
  array(
6959
  'id' => 'enable-single-pintrest-profile',
6960
  'type' => 'switch',
6961
+ 'title' => esc_html__('Pintrest ', 'accelerated-mobile-pages'),
6962
  'default' => 1,
6963
  'required' => array(
6964
  array('amp-design-selector', '=' , '3')
6967
  array(
6968
  'id' => 'enable-single-pintrest-profile-url',
6969
  'type' => 'text',
6970
+ 'title' => esc_html__('Pintrest URL', 'accelerated-mobile-pages'),
6971
  'default' => '#',
6972
  'required' => array(
6973
  array('amp-design-selector', '=' , '3'),
6978
  array(
6979
  'id' => 'enable-single-google-plus-profile',
6980
  'type' => 'switch',
6981
+ 'title' => esc_html__('Google Plus ', 'accelerated-mobile-pages'),
6982
  'default' => 0,
6983
  'required' => array(
6984
  array('amp-design-selector', '=' , '3')
6987
  array(
6988
  'id' => 'enable-single-google-plus-profile-url',
6989
  'type' => 'text',
6990
+ 'title' => esc_html__('Google Plus URL', 'accelerated-mobile-pages'),
6991
  'default' => '',
6992
  'required' => array(
6993
  array('amp-design-selector', '=' , '3'),
6998
  array(
6999
  'id' => 'enable-single-linkdin-profile',
7000
  'type' => 'switch',
7001
+ 'title' => esc_html__('LinkedIn', 'accelerated-mobile-pages'),
7002
  'default' => 0,
7003
  'required' => array(
7004
  array('amp-design-selector', '=' , '3')
7007
  array(
7008
  'id' => 'enable-single-linkdin-profile-url',
7009
  'type' => 'text',
7010
+ 'title' => esc_html__('LinkedIn URL', 'accelerated-mobile-pages'),
7011
  'default' => '',
7012
  'required' => array(
7013
  array('amp-design-selector', '=' , '3'),
7018
  array(
7019
  'id' => 'enable-single-youtube-profile',
7020
  'type' => 'switch',
7021
+ 'title' => esc_html__('Youtube ', 'accelerated-mobile-pages'),
7022
  'default' => 1,
7023
  'required' => array(
7024
  array('amp-design-selector', '=' , '3')
7028
  'id' => 'enable-single-youtube-profile-url',
7029
  'type' => 'text',
7030
  'default' => '#',
7031
+ 'title' => esc_html__('Youtube URL', 'accelerated-mobile-pages'),
7032
  'required' => array(
7033
  array('amp-design-selector', '=' , '3'),
7034
  array('enable-single-youtube-profile', '=' , '1')
7038
  array(
7039
  'id' => 'enable-single-instagram-profile',
7040
  'type' => 'switch',
7041
+ 'title' => esc_html__('Instagram ', 'accelerated-mobile-pages'),
7042
  'default' => 0,
7043
  'required' => array(
7044
  array('amp-design-selector', '=' , '3')
7048
  'id' => 'enable-single-instagram-profile-url',
7049
  'type' => 'text',
7050
  'default' => '',
7051
+ 'title' => esc_html__('Instagram URL', 'accelerated-mobile-pages'),
7052
  'required' => array(
7053
  array('amp-design-selector', '=' , '3'),
7054
  array('enable-single-instagram-profile', '=' , '1')
7058
  array(
7059
  'id' => 'enable-single-VKontakte-profile',
7060
  'type' => 'switch',
7061
+ 'title' => esc_html__('VKontakte ', 'accelerated-mobile-pages'),
7062
  'default' => 0,
7063
  'required' => array(
7064
  array('amp-design-selector', '=' , '3')
7068
  'id' => 'enable-single-VKontakte-profile-url',
7069
  'type' => 'text',
7070
  'default' => '',
7071
+ 'title' => esc_html__('VKontakte URL', 'accelerated-mobile-pages'),
7072
  'required' => array(
7073
  array('amp-design-selector', '=' , '3'),
7074
  array('enable-single-VKontakte-profile', '=' , '1')
7080
  array(
7081
  'id' => 'enable-single-reddit-profile',
7082
  'type' => 'switch',
7083
+ 'title' => esc_html__('Reddit', 'accelerated-mobile-pages'),
7084
  'default' => 0,
7085
  'required' => array(
7086
  array('amp-design-selector', '=' , '3')
7089
  array(
7090
  'id' => 'enable-single-reddit-profile-url',
7091
  'type' => 'text',
7092
+ 'title' => esc_html__('Reddit URL', 'accelerated-mobile-pages'),
7093
  'default' => '',
7094
  'required' => array(
7095
  array('amp-design-selector', '=' , '3'),
7100
  array(
7101
  'id' => 'enable-single-snapchat-profile',
7102
  'type' => 'switch',
7103
+ 'title' => esc_html__('Snapchat ', 'accelerated-mobile-pages'),
7104
  'default' => 0,
7105
  'required' => array(
7106
  array('amp-design-selector', '=' , '3')
7109
  array(
7110
  'id' => 'enable-single-snapchat-profile-url',
7111
  'type' => 'text',
7112
+ 'title' => esc_html__('Snapchat URL', 'accelerated-mobile-pages'),
7113
  'default' => '',
7114
  'required' => array(
7115
  array('amp-design-selector', '=' , '3'),
7120
  array(
7121
  'id' => 'enable-single-Tumblr-profile',
7122
  'type' => 'switch',
7123
+ 'title' => esc_html__('Tumblr', 'accelerated-mobile-pages'),
7124
  'default' => 0,
7125
  'required' => array(
7126
  array('amp-design-selector', '=' , '3')
7129
  array(
7130
  'id' => 'enable-single-Tumblr-profile-url',
7131
  'type' => 'text',
7132
+ 'title' => esc_html__('Tumblr URL', 'accelerated-mobile-pages'),
7133
  'default' => '',
7134
  'required' => array(
7135
  array('amp-design-selector', '=' , '3'),
7142
 
7143
  // Date SECTION
7144
  Redux::setSection( $opt_name, array(
7145
+ 'title' => esc_html__( 'Date', 'accelerated-mobile-pages' ),
7146
  'id' => 'ampforwp-date-section',
7147
  'subsection' => true,
7148
  'fields' => array(
7150
  array(
7151
  'id' => 'amp-design-3-date-feature',
7152
  'type' => 'switch',
7153
+ 'title' => esc_html__( 'Date in Posts', 'accelerated-mobile-pages' ),
7154
  'required' => array(
7155
  array('amp-design-selector', '=' , '3')
7156
  ),
7157
+ 'tooltip-subtitle' => esc_html__('Display date along with author and category in posts', 'accelerated-mobile-pages' ),
7158
  'default' => '0'
7159
  ),
7160
  array(
7161
  'id' => 'date-tab-1',
7162
  'type' => 'section',
7163
+ 'title' => esc_html__('General', 'accelerated-mobile-pages'),
7164
  'indent' => true,
7165
  'layout_type' => 'accordion',
7166
  'accordion-open'=> 1,
7169
  array(
7170
  'id' => 'ampforwp-post-date-global',
7171
  'type' => 'select',
7172
+ 'title' => esc_html__( 'Show Date As', 'accelerated-mobile-pages' ),
7173
  'options' => array(
7174
  '1' => 'Published Date',
7175
  '2' => 'Modified Date'
7180
  array(
7181
  'id' =>'ampforwp-post-date-format',
7182
  'type' =>'select',
7183
+ 'title' =>esc_html__('Date Format','accelerated-mobile-pages'),
7184
+ 'tooltip-subtitle' => esc_html__('Select the Date Format of Posts', 'accelerated-mobile-pages'),
7185
  'options' => array(
7186
  '1' => 'Ago',
7187
  '2' => 'Traditional view'
7191
  array(
7192
  'id' =>'ampforwp-post-date-format-text',
7193
  'type' =>'text',
7194
+ 'title' =>esc_html__('Text for the Date Format','accelerated-mobile-pages'),
7195
+ 'desc' =>esc_html__('Example: English - % days ago, Spain - ago % days','accelerated-mobile-pages'),
7196
  'required' => array( array('ampforwp-post-date-format', '=', '1') ),
7197
  'default' =>'% days ago',
7198
  ),
7200
  array(
7201
  'id' => 'post-modified-date',
7202
  'type' => 'switch',
7203
+ 'title' => esc_html__('Modified Date Notice', 'accelerated-mobile-pages'),
7204
  'default' => 0,
7205
+ 'tooltip-subtitle' => esc_html__('Show Modified date of an article at the end of the post.', 'accelerated-mobile-pages'),
7206
  ),
7207
  )
7208
 
7216
  }
7217
  // Misc SECTION
7218
  Redux::setSection( $opt_name, array(
7219
+ 'title' => esc_html__( 'Misc', 'accelerated-mobile-pages' ),
7220
  'desc' => $post_builder,
7221
  'id' => 'amp-design',
7222
  'subsection' => true,
7224
  array(
7225
  'id' => 'misc-tab-1',
7226
  'type' => 'section',
7227
+ 'title' => esc_html__('General', 'accelerated-mobile-pages'),
7228
  'indent' => true,
7229
  'layout_type' => 'accordion',
7230
  'accordion-open'=> 1,
7234
  array(
7235
  'id' =>'amp-rtl-select-option',
7236
  'type' => 'switch',
7237
+ 'title' => esc_html__('RTL Support', 'accelerated-mobile-pages'),
7238
  'default' => 0,
7239
+ 'tooltip-subtitle' => esc_html__('Enable Right to Left language support', 'accelerated-mobile-pages'),
7240
  'true' => 'true',
7241
  'false' => 'false',
7242
  ),
7243
  array(
7244
  'id' => 'ampforwp-sub-categories-support',
7245
  'type' => 'switch',
7246
+ 'title' => esc_html__('Sub-Categories under Category', 'accelerated-mobile-pages'),
7247
+ 'tooltip-subtitle' => esc_html__('Display sub-categories on category pages', 'accelerated-mobile-pages'),
7248
  'default' => '0'
7249
  ),
7250
  )
7253
 
7254
  // Extension Section
7255
  Redux::setSection( $opt_name, array(
7256
+ 'title' => esc_html__( 'Extensions', 'accelerated-mobile-pages' ),
 
7257
  'id' => 'opt-go-premium',
7258
  'subsection' => false,
7259
  'desc' => $extension_listing,
7260
  'icon' => 'el el-puzzle',
 
 
 
 
 
 
 
 
 
 
 
7261
  ) );
7262
 
7263
  if(!ampforwp_check_extensions()){
7264
  Redux::setSection( $opt_name, array(
7265
+ 'title' => esc_html__( 'Free vs Pro', 'accelerated-mobile-pages' ),
 
7266
  'id' => 'opt-choose',
7267
  'subsection' => false,
7268
  'desc' => $freepro_listing,
7273
 
7274
  // Priority Support
7275
  Redux::setSection( $opt_name, array(
7276
+ 'title' => esc_html__( 'Fix AMP Errors', 'accelerated-mobile-pages' ),
 
7277
  'id' => 'opt-go-premium-support',
7278
  'subsection' => false,
7279
  'desc' => ' <a href="http://ampforwp.com/priority-support/#utm_source=options-panel&utm_medium=extension-tab_priority_support&utm_campaign=AMP%20Plugin" target="_blank"><img class="ampforwp-support-banner" src="'.AMPFORWP_IMAGE_DIR . '/priority-support-banner.png" width="345" height="500" /></a>',
7280
  'icon' => 'el el-hand-right',
7281
  ) );
7282
 
 
 
7283
  // Plugin Manager
7284
  Redux::setSection( $opt_name, array(
7285
+ 'title' => esc_html__( 'Plugins Manager', 'accelerated-mobile-pages' ),
7286
  'id' => 'opt-plugins-manager',
7287
  'subsection' => false,
7288
  'desc' => 'You can Disable Plugins only in AMP which are causing AMP validation errors. <a href="http://ampforwp.com/plugins-manager" target="_blank">More Information.</a>',
7292
  array(
7293
  'id' => 'ampforwp-plugin-manager-core',
7294
  'type' => 'switch',
7295
+ 'title' => esc_html__('Enable Plugin Manager', 'accelerated-mobile-pages'),
7296
  'default' => 0
7297
  ),
7298
  array(
 
7299
  'id' => 'info_normal',
7300
  'type' => 'info',
7301
  'required' => array('ampforwp-plugin-manager-core', '=' , '1'),
includes/options/extensions/amp_slider/amp_slider/field_amp_slider.php CHANGED
@@ -227,12 +227,11 @@ if ( ! class_exists( 'ReduxFramework_amp_slider' ) ) {
227
  function enqueue() {
228
 
229
  $min = '';//Redux_Functions::isMin();
230
- //echo ReduxFramework::$_url;die;
231
  wp_enqueue_style( 'select2-css' );
232
 
233
  wp_enqueue_style(
234
  'redux-nouislider-css',
235
- $this->extension_url . 'vendor/nouislider/redux.jquery.nouislider.css',
236
  array(),
237
  $this->time,
238
  'all'
@@ -240,7 +239,7 @@ if ( ! class_exists( 'ReduxFramework_amp_slider' ) ) {
240
 
241
  wp_register_script(
242
  'redux-nouislider-js',
243
- $this->extension_url . '/vendor/nouislider/redux.jquery.nouislider' . $min . '.js',
244
  array( 'jquery' ),
245
  $this->time,
246
  true
@@ -248,7 +247,7 @@ if ( ! class_exists( 'ReduxFramework_amp_slider' ) ) {
248
 
249
  wp_enqueue_script(
250
  'redux-field-slider-js',
251
- $this->extension_url . '/field_amp_slider' . $min . '.js',
252
  array( 'jquery', 'redux-nouislider-js', 'redux-js', 'select2-js' ),
253
  $this->time,
254
  true
@@ -257,7 +256,7 @@ if ( ! class_exists( 'ReduxFramework_amp_slider' ) ) {
257
  //if ($this->parent->args['dev_mode']) {
258
  wp_enqueue_style(
259
  'redux-field-slider-css',
260
- $this->extension_url . '/field_amp_slider.css',
261
  array(),
262
  $this->time,
263
  'all'
@@ -321,10 +320,10 @@ if ( ! class_exists( 'ReduxFramework_amp_slider' ) ) {
321
  if ( $this->display_text == $this->field['display_value'] ) {
322
  $showInput = true;
323
  echo '<input type="text"
324
- name="' . $nameOne . '"
325
- id="' . $idOne . '"
326
  value="' . $valOne . '"
327
- class="redux-amp_slider-input redux-amp_slider-input-one-' . $fieldID . ' ' . $this->field['class'] . '"/>';
328
 
329
  // LABEL output
330
  } elseif ( $this->display_label == $this->field['display_value'] ) {
@@ -332,7 +331,7 @@ if ( ! class_exists( 'ReduxFramework_amp_slider' ) ) {
332
 
333
  $labelNum = $twoHandles ? '-one' : '';
334
 
335
- echo '<div class="redux-amp_slider-label' . $labelNum . '"
336
  id="redux-slider-label-one-' . $fieldID . '"
337
  name="' . $nameOne . '">
338
  </div>';
@@ -345,31 +344,31 @@ if ( ! class_exists( 'ReduxFramework_amp_slider' ) ) {
345
  $select2_params = json_encode( $this->field['select2'] );
346
  $select2_params = htmlspecialchars( $select2_params, ENT_QUOTES );
347
 
348
- echo '<input type="hidden" class="select2_params" value="' . $select2_params . '">';
349
  }
350
 
351
 
352
- echo '<select class="redux-amp_slider-select-one redux-amp_slider-select-one-' . $fieldID . ' ' . $this->field['class'] . '"
353
- name="' . $nameOne . '"
354
- id="' . $idOne . '">
355
  </select>';
356
  }
357
 
358
  // DIV output
359
  echo
360
  '<div
361
- class="redux-amp_slider-container ' . $this->field['class'] . '"
362
- id="' . $fieldID . '"
363
- data-id="' . $fieldID . '"
364
- data-min="' . $this->field['min'] . '"
365
- data-max="' . $this->field['max'] . '"
366
- data-step="' . $this->field['step'] . '"
367
- data-handles="' . $this->field['handles'] . '"
368
- data-display="' . $this->field['display_value'] . '"
369
- data-rtl="' . is_rtl() . '"
370
- data-forced="' . $this->field['forced'] . '"
371
- data-float-mark="' . $this->field['float_mark'] . '"
372
- data-resolution="' . $this->field['resolution'] . '" ' . $html . '>
373
  </div>';
374
 
375
  // Double slider output
@@ -378,25 +377,25 @@ if ( ! class_exists( 'ReduxFramework_amp_slider' ) ) {
378
  // TEXT
379
  if ( true == $showInput ) {
380
  echo '<input type="text"
381
- name="' . $nameTwo . '"
382
- id="' . $idTwo . '"
383
- value="' . $valTwo . '"
384
- class="redux-amp_slider-input redux-amp_slider-input-two-' . $fieldID . ' ' . $this->field['class'] . '"/>';
385
  }
386
 
387
  // LABEL
388
  if ( true == $showLabel ) {
389
  echo '<div class="redux-amp_slider-label-two"
390
- id="redux-amp_slider-label-two-' . $fieldID . '"
391
- name="' . $nameTwo . '">
392
  </div>';
393
  }
394
 
395
  // SELECT
396
  if ( true == $showSelect ) {
397
- echo '<select class="redux-amp_slider-select-two redux-amp_slider-select-two-' . $fieldID . ' ' . $this->field['class'] . '"
398
- name="' . $nameTwo . '"
399
- id="' . $idTwo . '">
400
  </select>';
401
 
402
  }
@@ -405,18 +404,18 @@ if ( ! class_exists( 'ReduxFramework_amp_slider' ) ) {
405
  // NO output (input hidden)
406
  if ( $this->display_none == $this->field['display_value'] || $this->display_label == $this->field['display_value'] ) {
407
  echo '<input type="hidden"
408
- class="redux-slider-value-one-' . $fieldID . ' ' . $this->field['class'] . '"
409
- name="' . $nameOne . '"
410
- id="' . $idOne . '"
411
- value="' . $valOne . '"/>';
412
 
413
  // double slider hidden output
414
  if ( true == $twoHandles ) {
415
  echo '<input type="hidden"
416
- class="redux-slider-value-two-' . $fieldID . ' ' . $this->field['class'] . '"
417
- name="' . $nameTwo . '"
418
- id="' . $idTwo . '"
419
- value="' . $valTwo . '"/>';
420
  }
421
  }
422
  }
227
  function enqueue() {
228
 
229
  $min = '';//Redux_Functions::isMin();
 
230
  wp_enqueue_style( 'select2-css' );
231
 
232
  wp_enqueue_style(
233
  'redux-nouislider-css',
234
+ esc_url($this->extension_url . 'vendor/nouislider/redux.jquery.nouislider.css'),
235
  array(),
236
  $this->time,
237
  'all'
239
 
240
  wp_register_script(
241
  'redux-nouislider-js',
242
+ esc_url($this->extension_url . '/vendor/nouislider/redux.jquery.nouislider' . $min . '.js'),
243
  array( 'jquery' ),
244
  $this->time,
245
  true
247
 
248
  wp_enqueue_script(
249
  'redux-field-slider-js',
250
+ esc_url($this->extension_url . '/field_amp_slider' . $min . '.js'),
251
  array( 'jquery', 'redux-nouislider-js', 'redux-js', 'select2-js' ),
252
  $this->time,
253
  true
256
  //if ($this->parent->args['dev_mode']) {
257
  wp_enqueue_style(
258
  'redux-field-slider-css',
259
+ esc_url($this->extension_url . '/field_amp_slider.css'),
260
  array(),
261
  $this->time,
262
  'all'
320
  if ( $this->display_text == $this->field['display_value'] ) {
321
  $showInput = true;
322
  echo '<input type="text"
323
+ name="' . esc_attr($nameOne) . '"
324
+ id="' . esc_attr($idOne) . '"
325
  value="' . $valOne . '"
326
+ class="redux-amp_slider-input redux-amp_slider-input-one-' . esc_attr($fieldID) . ' ' . esc_attr($this->field['class']) . '"/>';
327
 
328
  // LABEL output
329
  } elseif ( $this->display_label == $this->field['display_value'] ) {
331
 
332
  $labelNum = $twoHandles ? '-one' : '';
333
 
334
+ echo '<div class="redux-amp_slider-label' . esc_attr($labelNum) . '"
335
  id="redux-slider-label-one-' . $fieldID . '"
336
  name="' . $nameOne . '">
337
  </div>';
344
  $select2_params = json_encode( $this->field['select2'] );
345
  $select2_params = htmlspecialchars( $select2_params, ENT_QUOTES );
346
 
347
+ echo '<input type="hidden" class="select2_params" value="' . esc_attr($select2_params) . '">';
348
  }
349
 
350
 
351
+ echo '<select class="redux-amp_slider-select-one redux-amp_slider-select-one-' . esc_attr($fieldID) . ' ' . esc_attr($this->field['class']) . '"
352
+ name="' . esc_attr($nameOne) . '"
353
+ id="' . esc_attr($idOne) . '">
354
  </select>';
355
  }
356
 
357
  // DIV output
358
  echo
359
  '<div
360
+ class="redux-amp_slider-container ' . esc_attr($this->field['class']) . '"
361
+ id="' . esc_attr($fieldID) . '"
362
+ data-id="' . esc_attr($fieldID) . '"
363
+ data-min="' . esc_attr($this->field['min']) . '"
364
+ data-max="' . esc_attr($this->field['max']) . '"
365
+ data-step="' . esc_attr($this->field['step']) . '"
366
+ data-handles="' . esc_attr($this->field['handles']) . '"
367
+ data-display="' . esc_attr($this->field['display_value']) . '"
368
+ data-rtl="' . esc_attr(is_rtl()) . '"
369
+ data-forced="' . esc_attr($this->field['forced']) . '"
370
+ data-float-mark="' . esc_attr($this->field['float_mark']) . '"
371
+ data-resolution="' . esc_attr($this->field['resolution']) . '" ' . $html . '>
372
  </div>';
373
 
374
  // Double slider output
377
  // TEXT
378
  if ( true == $showInput ) {
379
  echo '<input type="text"
380
+ name="' . esc_attr($nameTwo) . '"
381
+ id="' . esc_attr($idTwo) . '"
382
+ value="' . esc_attr($valTwo) . '"
383
+ class="redux-amp_slider-input redux-amp_slider-input-two-' . esc_attr($fieldID) . ' ' . esc_attr($this->field['class']) . '"/>';
384
  }
385
 
386
  // LABEL
387
  if ( true == $showLabel ) {
388
  echo '<div class="redux-amp_slider-label-two"
389
+ id="redux-amp_slider-label-two-' . esc_attr($fieldID) . '"
390
+ name="' . esc_attr($nameTwo) . '">
391
  </div>';
392
  }
393
 
394
  // SELECT
395
  if ( true == $showSelect ) {
396
+ echo '<select class="redux-amp_slider-select-two redux-amp_slider-select-two-' . esc_attr($fieldID) . ' ' . esc_attr($this->field['class']) . '"
397
+ name="' . esc_attr($nameTwo) . '"
398
+ id="' . esc_attr($idTwo) . '">
399
  </select>';
400
 
401
  }
404
  // NO output (input hidden)
405
  if ( $this->display_none == $this->field['display_value'] || $this->display_label == $this->field['display_value'] ) {
406
  echo '<input type="hidden"
407
+ class="redux-slider-value-one-' . esc_attr($fieldID) . ' ' . esc_attr($this->field['class']) . '"
408
+ name="' . esc_attr($nameOne) . '"
409
+ id="' . esc_attr($idOne) . '"
410
+ value="' . esc_attr($valOne) . '"/>';
411
 
412
  // double slider hidden output
413
  if ( true == $twoHandles ) {
414
  echo '<input type="hidden"
415
+ class="redux-slider-value-two-' . esc_attr($fieldID) . ' ' . esc_attr($this->field['class']) . '"
416
+ name="' . esc_attr($nameTwo) . '"
417
+ id="' . esc_attr($idTwo) . '"
418
+ value="' . esc_attr($valTwo) . '"/>';
419
  }
420
  }
421
  }
includes/options/extensions/checkbox_hierarchy/checkbox_hierarchy/field_checkbox_hierarchy.php CHANGED
@@ -70,7 +70,7 @@ if ( !class_exists ( 'ReduxFramework_checkbox_hierarchy' ) ) {
70
  }
71
  $this->field[ 'data_class' ] = ( isset ( $this->field[ 'multi_layout' ] ) ) ? 'data-' . $this->field[ 'multi_layout' ] : 'data-full';
72
  if ( !empty ( $this->field[ 'options' ] ) && ( is_array ( $this->field[ 'options' ] ) || is_array ( $this->field[ 'default' ] ) ) ) {
73
- echo '<ul class="' . $this->field[ 'data_class' ] . '">';
74
  if ( !isset ( $this->value ) ) {
75
  $this->value = array();
76
  }
@@ -191,7 +191,7 @@ if ( !class_exists ( 'ReduxFramework_checkbox_hierarchy' ) ) {
191
  if ($this->parent->args['dev_mode']) {
192
  wp_enqueue_style (
193
  'redux-field-checkbox-hierarchy-css',
194
- $this->extension_url . 'field_checkbox_hierarchy.css',
195
  array(),
196
  $this->time, //time (),
197
  'all'
@@ -200,7 +200,7 @@ if ( !class_exists ( 'ReduxFramework_checkbox_hierarchy' ) ) {
200
  //
201
  wp_enqueue_script (
202
  'redux-field-checkbox-hierarchy-js',
203
- $this->extension_url . 'field_checkbox_hierarchy' . Redux_Functions::isMin () . '.js',
204
  array( 'jquery', 'redux-js' ),
205
  $this->time, //time (),
206
  true
70
  }
71
  $this->field[ 'data_class' ] = ( isset ( $this->field[ 'multi_layout' ] ) ) ? 'data-' . $this->field[ 'multi_layout' ] : 'data-full';
72
  if ( !empty ( $this->field[ 'options' ] ) && ( is_array ( $this->field[ 'options' ] ) || is_array ( $this->field[ 'default' ] ) ) ) {
73
+ echo '<ul class="' . esc_attr($this->field[ 'data_class' ]) . '">';
74
  if ( !isset ( $this->value ) ) {
75
  $this->value = array();
76
  }
191
  if ($this->parent->args['dev_mode']) {
192
  wp_enqueue_style (
193
  'redux-field-checkbox-hierarchy-css',
194
+ esc_url($this->extension_url . 'field_checkbox_hierarchy.css'),
195
  array(),
196
  $this->time, //time (),
197
  'all'
200
  //
201
  wp_enqueue_script (
202
  'redux-field-checkbox-hierarchy-js',
203
+ esc_url($this->extension_url . 'field_checkbox_hierarchy' . Redux_Functions::isMin () . '.js'),
204
  array( 'jquery', 'redux-js' ),
205
  $this->time, //time (),
206
  true
includes/options/extensions/demolink_image_select/demolink_image_select/field_demolink_image_select.php CHANGED
@@ -77,7 +77,7 @@ if ( ! class_exists( 'ReduxFramework_demolink_image_select' ) ) {
77
  }
78
 
79
  // Process placeholder
80
- $placeholder = ( isset( $this->field['placeholder'] ) ) ? esc_attr( $this->field['placeholder'] ) : __( 'Select an item', 'redux-framework' );
81
 
82
  if ( isset( $this->field['select2'] ) ) { // if there are any let's pass them to js
83
  $select2_params = json_encode( $this->field['select2'] );
@@ -142,7 +142,7 @@ if ( ! class_exists( 'ReduxFramework_demolink_image_select' ) ) {
142
  }
143
 
144
  // Add the option tag, with values.
145
- echo '<option value="' . $v['img'] . '" ' . $selected . '>' . $v['alt'] . '</option>';
146
  }
147
  // Add a bean
148
  $x ++;
@@ -174,9 +174,9 @@ if ( ! class_exists( 'ReduxFramework_demolink_image_select' ) ) {
174
  if (isset($this->field['options'][ $arrNum - 1 ]['demo_link'])) {
175
  $demo = $this->field['options'][ $arrNum - 1 ]['demo_link'];
176
  }
177
- echo '<img src=' . $this->field['options'][ $arrNum - 1 ]['img'] . ' class="redux-preview-image" id="image_' . $this->field['id'] . '" onclick="return window.open(\''.$demo.'\')">';
178
  if (isset($this->field['options'][ $arrNum - 1 ]['demo_link'])) {
179
- echo '<a href="'. $demo .'" id="theme-selected-demo-link" target="_blank">
180
  Demo
181
  </a>';
182
  }
@@ -187,7 +187,7 @@ if ( ! class_exists( 'ReduxFramework_demolink_image_select' ) ) {
187
  } else {
188
 
189
  // No options specified. Really?
190
- echo '<strong>' . __( 'No items of this type were found.', 'redux-framework' ) . '</strong>';
191
  }
192
  } //function
193
 
@@ -217,7 +217,7 @@ if ( ! class_exists( 'ReduxFramework_demolink_image_select' ) ) {
217
 
218
  wp_enqueue_script(
219
  'field-demolink-select-image-js',
220
- $this->extension_url .'field_demolink_image_select.js',
221
  array('jquery', 'select2-js', 'redux-js'),
222
  $this->time,
223
  true
@@ -226,7 +226,7 @@ if ( ! class_exists( 'ReduxFramework_demolink_image_select' ) ) {
226
  if ($this->parent->args['dev_mode']) {
227
  wp_enqueue_style(
228
  'redux-field-select-image-css',
229
- $this->extension_url .'field_demolink_image_select.css',
230
  array(),
231
  $this->time,
232
  'all'
77
  }
78
 
79
  // Process placeholder
80
+ $placeholder = ( isset( $this->field['placeholder'] ) ) ? esc_attr( $this->field['placeholder'] ) : esc_html__( 'Select an item', 'redux-framework' );
81
 
82
  if ( isset( $this->field['select2'] ) ) { // if there are any let's pass them to js
83
  $select2_params = json_encode( $this->field['select2'] );
142
  }
143
 
144
  // Add the option tag, with values.
145
+ echo '<option value="' . esc_url($v['img']) . '" ' . $selected . '>' . esc_html($v['alt']) . '</option>';
146
  }
147
  // Add a bean
148
  $x ++;
174
  if (isset($this->field['options'][ $arrNum - 1 ]['demo_link'])) {
175
  $demo = $this->field['options'][ $arrNum - 1 ]['demo_link'];
176
  }
177
+ echo '<img src=' . esc_url($this->field['options'][ $arrNum - 1 ]['img']) . ' class="redux-preview-image" id="image_' . $this->field['id'] . '" onclick="return window.open(\''.$demo.'\')">';
178
  if (isset($this->field['options'][ $arrNum - 1 ]['demo_link'])) {
179
+ echo '<a href="'. esc_url($demo) .'" id="theme-selected-demo-link" target="_blank">
180
  Demo
181
  </a>';
182
  }
187
  } else {
188
 
189
  // No options specified. Really?
190
+ echo '<strong>' . esc_html__( 'No items of this type were found.', 'redux-framework' ) . '</strong>';
191
  }
192
  } //function
193
 
217
 
218
  wp_enqueue_script(
219
  'field-demolink-select-image-js',
220
+ esc_url($this->extension_url .'field_demolink_image_select.js'),
221
  array('jquery', 'select2-js', 'redux-js'),
222
  $this->time,
223
  true
226
  if ($this->parent->args['dev_mode']) {
227
  wp_enqueue_style(
228
  'redux-field-select-image-css',
229
+ esc_url($this->extension_url .'field_demolink_image_select.css'),
230
  array(),
231
  $this->time,
232
  'all'
includes/options/extensions/vendor_support/extension_vendor_support.php CHANGED
@@ -21,7 +21,7 @@
21
 
22
  // Exit if accessed directly
23
  if ( ! defined( 'ABSPATH' ) ) {
24
- die;
25
  }
26
 
27
  if ( ! class_exists( 'ReduxFramework_extension_vendor_support' ) ) {
21
 
22
  // Exit if accessed directly
23
  if ( ! defined( 'ABSPATH' ) ) {
24
+ exit;
25
  }
26
 
27
  if ( ! class_exists( 'ReduxFramework_extension_vendor_support' ) ) {
includes/redirect.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  // Redirection for Homepage and Archive Pages when Turned Off from options panel
3
  function ampforwp_check_amp_page_status() {
4
  global $redux_builder_amp, $wp;
@@ -11,7 +15,7 @@ function ampforwp_check_amp_page_status() {
11
  $redirection_location = trailingslashit($redirection_location );
12
 
13
  $redirection_location = dirname($redirection_location);
14
- wp_safe_redirect( $redirection_location );
15
  exit;
16
  }
17
  }
@@ -94,7 +98,7 @@ function ampforwp_check_amp_page_status() {
94
  $redirection_location = $home_url;
95
  }
96
 
97
- wp_safe_redirect( $redirection_location );
98
  exit;
99
 
100
  }
@@ -231,7 +235,7 @@ function ampforwp_page_template_redirect() {
231
  $_SESSION['ampforwp_amp_mode'] = 'mobile-on';
232
 
233
  if ( $url_to_redirect ) {
234
- wp_redirect( $url_to_redirect , 301 );
235
  exit();
236
  }
237
 
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  // Redirection for Homepage and Archive Pages when Turned Off from options panel
7
  function ampforwp_check_amp_page_status() {
8
  global $redux_builder_amp, $wp;
15
  $redirection_location = trailingslashit($redirection_location );
16
 
17
  $redirection_location = dirname($redirection_location);
18
+ wp_safe_redirect( esc_url($redirection_location) );
19
  exit;
20
  }
21
  }
98
  $redirection_location = $home_url;
99
  }
100
 
101
+ wp_safe_redirect( esc_url($redirection_location) );
102
  exit;
103
 
104
  }
235
  $_SESSION['ampforwp_amp_mode'] = 'mobile-on';
236
 
237
  if ( $url_to_redirect ) {
238
+ wp_redirect( esc_url($url_to_redirect) , 301 );
239
  exit();
240
  }
241
 
includes/thirdparty-compatibility.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  //Remove ResponsifyWP #1131
3
  add_action('plugins_loaded', 'ampforwp_filter_remove_function_responsifywp');
4
  function ampforwp_filter_remove_function_responsifywp(){
@@ -20,8 +24,8 @@ function ampforwp_removing_sassy_social_share(){
20
 
21
  // Remove Schema theme Lazy Load #1170
22
 
23
- add_action('pre_amp_render_post','schema_lazy_load_remover');
24
- function schema_lazy_load_remover(){
25
  remove_filter( 'wp_get_attachment_image_attributes', 'mts_image_lazy_load_attr', 10, 3 );
26
  remove_filter('the_content', 'mts_content_image_lazy_load_attr');
27
  }
@@ -54,11 +58,7 @@ if(!function_exists('ampforwp_amp_nonamp_convert')){
54
  "</sidebar>",
55
  )
56
  , $ampData);
57
- /*$returnData = preg_replace("/<style>(.*?)<\/style>/i", function($match){
58
-
59
- $match[0] .= '.cntr img{width:100%;height:auto;}';
60
- return $match[0];
61
- }, $returnData);*/
62
  $nonampCss = '
63
  .cntr img{width:100%;height:auto !important;}
64
  img{height:auto;}
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  //Remove ResponsifyWP #1131
7
  add_action('plugins_loaded', 'ampforwp_filter_remove_function_responsifywp');
8
  function ampforwp_filter_remove_function_responsifywp(){
24
 
25
  // Remove Schema theme Lazy Load #1170
26
 
27
+ add_action('pre_amp_render_post','ampforwp_schema_lazy_load_remover');
28
+ function ampforwp_schema_lazy_load_remover(){
29
  remove_filter( 'wp_get_attachment_image_attributes', 'mts_image_lazy_load_attr', 10, 3 );
30
  remove_filter('the_content', 'mts_content_image_lazy_load_attr');
31
  }
58
  "</sidebar>",
59
  )
60
  , $ampData);
61
+
 
 
 
 
62
  $nonampCss = '
63
  .cntr img{width:100%;height:auto !important;}
64
  img{height:auto;}
includes/updater/update.php CHANGED
@@ -6,13 +6,22 @@ if ( ! defined( 'ABSPATH' ) ) {
6
  }
7
 
8
  function ampforwp_get_licence_activate_update(){
 
 
 
 
 
 
 
 
 
9
  $selectedOption = get_option('redux_builder_amp',true);
10
- if($_POST){
11
- $ampforwp_license_activate = $_POST['ampforwp_license_activate'];
12
- $license = $_POST['license'];
13
- $item_name = $_POST['item_name'];
14
- $store_url = $_POST['store_url'];
15
- $plugin_active_path = $_POST['plugin_active_path'];
16
  $status = 300;
17
  if($license==""){
18
  $message = "Please Enter valid license key";
@@ -42,7 +51,7 @@ function ampforwp_get_licence_activate_update(){
42
  if ( is_wp_error( $response ) ) {
43
  $message = $response->get_error_message();
44
  } else {
45
- $message = __( 'An error occurred, please try again.', 'accelerated-mobile-pages' );
46
  }
47
 
48
  } else {
@@ -52,7 +61,7 @@ function ampforwp_get_licence_activate_update(){
52
  switch( $license_data->error ) {
53
  case 'expired' :
54
  $message = sprintf(
55
- __( 'Your license key expired on %s.', 'accelerated-mobile-pages' ),
56
  date_i18n( get_option( 'date_format' ), strtotime( $license_data->expires, current_time( 'timestamp' ) ) )
57
  );
58
  $message .= "<a href='".$store_url."/checkout-2/?edd_license_key=16ed15c13524cc7e00346eeb3f76e412'>Renew Link</a>";
@@ -60,35 +69,35 @@ function ampforwp_get_licence_activate_update(){
60
 
61
  case 'revoked' :
62
 
63
- $message = __( 'Your license key has been disabled.', 'accelerated-mobile-pages' );
64
  break;
65
 
66
  case 'missing' :
67
- $message = __( 'Invalid license.', 'accelerated-mobile-pages' );
68
  break;
69
 
70
  case 'invalid' :
71
  case 'site_inactive' :
72
 
73
- $message = __( 'Your license is not active for this URL.', 'accelerated-mobile-pages' );
74
  break;
75
 
76
  case 'item_name_mismatch' :
77
 
78
  $message = sprintf(
79
- __( 'This appears to be an invalid license key for %s.', 'accelerated-mobile-pages' ),
80
  $item_name
81
  );
82
  break;
83
 
84
  case 'no_activations_left':
85
 
86
- $message = __( 'Your license key has reached its activation limit.', 'accelerated-mobile-pages' );
87
  break;
88
 
89
  default :
90
 
91
- $message = __( 'An error occurred, please try again.', 'accelerated-mobile-pages' );
92
  break;
93
  }
94
 
@@ -142,17 +151,26 @@ add_action( 'wp_ajax_ampforwp_get_licence_activate_update', 'ampforwp_get_licenc
142
  ***********************************************/
143
 
144
  function ampforwp_deactivate_license() {
 
 
 
 
 
 
 
 
145
 
146
  // listen for our activate button to be clicked
147
  if( isset( $_POST['ampforwp_license_deactivate'] ) ) {
148
 
 
149
  // retrieve the license from the database
150
  $selectedOption = get_option('redux_builder_amp',true);
151
  $license = '';//trim( get_option( 'amp_ads_license_key' ) );
152
  $pluginItemName = '';
153
  $pluginItemStoreUrl = '';
154
  if( isset($selectedOption['amp-license']) && "" != $selectedOption['amp-license']){
155
- $pluginsDetail = $selectedOption['amp-license'][$_POST['ampforwp_license_deactivate']];
156
  $license = $pluginsDetail['license'];
157
  $pluginItemName = $pluginsDetail['item_name'];
158
  $pluginItemStoreUrl = $pluginsDetail['store_url'];
@@ -175,14 +193,10 @@ function ampforwp_deactivate_license() {
175
  if ( is_wp_error( $response ) ) {
176
  $message = $response->get_error_message();
177
  } else {
178
- $message = __( 'An error occurred, please try again.', 'advanced-amp-ads' );
179
  }
180
 
181
- /*$base_url = admin_url( 'plugins.php?page=' . AMP_ADS_LICENSE_PAGE );
182
- $redirect = add_query_arg( array( 'sl_activation' => 'false', 'message' => urlencode( $message ) ), $base_url );
183
-
184
- wp_redirect( $redirect );*/
185
- echo json_encode(array('status'=>500,"message"=>$message,"test"=>$selectedOption['amp-license'][$_POST['ampforwp_license_deactivate']], "dsc"=>$pluginItemStoreUrl));
186
  exit();
187
  }else{
188
  $message = 'Plugin deactivated successfully';
@@ -196,8 +210,8 @@ function ampforwp_deactivate_license() {
196
  delete_option( 'amp_ads_license_status' );
197
  }
198
  if( isset($selectedOption['amp-license']) && "" != $selectedOption['amp-license']){
199
- $selectedOption['amp-license'][$_POST['ampforwp_license_deactivate']]['status']= 'invalid';
200
- $selectedOption['amp-license'][$_POST['ampforwp_license_deactivate']]['license']= '';
201
  update_option( 'redux_builder_amp', $selectedOption );
202
  }
203
  echo json_encode(array('status'=>200,"message"=>$message));
@@ -207,8 +221,6 @@ function ampforwp_deactivate_license() {
207
  }
208
  }
209
  add_action( 'wp_ajax_ampforwp_deactivate_license', 'ampforwp_deactivate_license' );
210
- //add_action( 'admin_init', 'ampforwp_deactivate_license');
211
-
212
 
213
  /************************************
214
  * this illustrates how to check if
@@ -219,17 +231,21 @@ add_action( 'wp_ajax_ampforwp_deactivate_license', 'ampforwp_deactivate_license'
219
  *************************************/
220
 
221
  function ampforwp_check_extension_license() {
222
-
 
 
 
223
  global $wp_version;
224
 
225
  //$license = trim( get_option( 'amp_ads_license_key' ) );
 
226
 
227
  $selectedOption = get_option('redux_builder_amp',true);
228
  $license = '';//trim( get_option( 'amp_ads_license_key' ) );
229
  $pluginItemName = '';
230
  $pluginItemStoreUrl = '';
231
  if( isset($selectedOption['amp-license']) && "" != $selectedOption['amp-license']){
232
- $pluginsDetail = $selectedOption['amp-license'][$_POST['ampforwp_license_deactivate']];
233
  $license = $pluginsDetail['license'];
234
  $pluginItemName = $pluginsDetail['item_name'];
235
  $pluginItemStoreUrl = $pluginsDetail['store_url'];
@@ -239,7 +255,7 @@ function ampforwp_check_extension_license() {
239
  'edd_action' => 'check_license',
240
  'license' => $license,
241
  'item_name' => urlencode( $pluginItemName ),
242
- 'url' => home_url()
243
  );
244
 
245
  // Call the custom API.
@@ -271,7 +287,7 @@ function ampforwp_admin_notices() {
271
  $message = urldecode( $_GET['message'] );
272
  ?>
273
  <div class="error">
274
- <p><?php echo $message; ?></p>
275
  </div>
276
  <?php
277
  break;
@@ -306,13 +322,12 @@ function ampforwp_set_plugin_limit( $force=false, $license_data='', $data) {
306
 
307
  $api_params = array(
308
  'edd_action' => 'check_license',
309
- 'license' => $license,
310
  'item_name' => urlencode( $item_name ),
311
- 'url' => home_url()
312
  );
313
 
314
  // Call the custom API.
315
- //$response = wp_remote_post( AMP_ADS_STORE_URL, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
316
  $response = wp_remote_post( $store_url, array( 'timeout' => 15, 'body' => $api_params ) );
317
 
318
  if ( is_wp_error( $response ) )
@@ -330,10 +345,7 @@ function ampforwp_set_plugin_limit( $force=false, $license_data='', $data) {
330
  } else if( isset( $license_data->license_limit ) ) {
331
  // Using the license_limit to define how many plugins can be tracked
332
  $limit = $license_data->license_limit;
333
- }
334
-
335
- //update_option( 'amp_ads_license_limit', intval( $limit ) );
336
-
337
  return $limit;
338
 
339
  }
6
  }
7
 
8
  function ampforwp_get_licence_activate_update(){
9
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_extension' ) ) {
10
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
11
+ die;
12
+ }
13
+ // Exit if the user does not have proper permissions
14
+ if(! current_user_can( 'manage_options' ) ) {
15
+ echo json_encode(array("status"=>300,"message"=>'User not have authority'));
16
+ die;
17
+ }
18
  $selectedOption = get_option('redux_builder_amp',true);
19
+ if($_SERVER['REQUEST_METHOD']=='POST'){
20
+ $ampforwp_license_activate = sanitize_text_field($_POST['ampforwp_license_activate']);
21
+ $license = sanitize_text_field($_POST['license']);
22
+ $item_name = sanitize_text_field($_POST['item_name']);
23
+ $store_url = sanitize_text_field($_POST['store_url']);
24
+ $plugin_active_path = sanitize_text_field($_POST['plugin_active_path']);
25
  $status = 300;
26
  if($license==""){
27
  $message = "Please Enter valid license key";
51
  if ( is_wp_error( $response ) ) {
52
  $message = $response->get_error_message();
53
  } else {
54
+ $message = esc_html__( 'An error occurred, please try again.', 'accelerated-mobile-pages' );
55
  }
56
 
57
  } else {
61
  switch( $license_data->error ) {
62
  case 'expired' :
63
  $message = sprintf(
64
+ esc_html__( 'Your license key expired on %s.', 'accelerated-mobile-pages' ),
65
  date_i18n( get_option( 'date_format' ), strtotime( $license_data->expires, current_time( 'timestamp' ) ) )
66
  );
67
  $message .= "<a href='".$store_url."/checkout-2/?edd_license_key=16ed15c13524cc7e00346eeb3f76e412'>Renew Link</a>";
69
 
70
  case 'revoked' :
71
 
72
+ $message = esc_html__( 'Your license key has been disabled.', 'accelerated-mobile-pages' );
73
  break;
74
 
75
  case 'missing' :
76
+ $message = esc_html__( 'Invalid license.', 'accelerated-mobile-pages' );
77
  break;
78
 
79
  case 'invalid' :
80
  case 'site_inactive' :
81
 
82
+ $message = esc_html__( 'Your license is not active for this URL.', 'accelerated-mobile-pages' );
83
  break;
84
 
85
  case 'item_name_mismatch' :
86
 
87
  $message = sprintf(
88
+ esc_html__( 'This appears to be an invalid license key for %s.', 'accelerated-mobile-pages' ),
89
  $item_name
90
  );
91
  break;
92
 
93
  case 'no_activations_left':
94
 
95
+ $message = esc_html__( 'Your license key has reached its activation limit.', 'accelerated-mobile-pages' );
96
  break;
97
 
98
  default :
99
 
100
+ $message = esc_html__( 'An error occurred, please try again.', 'accelerated-mobile-pages' );
101
  break;
102
  }
103
 
151
  ***********************************************/
152
 
153
  function ampforwp_deactivate_license() {
154
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_extension' ) ) {
155
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
156
+ die;
157
+ }
158
+ // Exit if the user does not have proper permissions
159
+ if(! current_user_can( 'manage_options' ) ) {
160
+ return ;
161
+ }
162
 
163
  // listen for our activate button to be clicked
164
  if( isset( $_POST['ampforwp_license_deactivate'] ) ) {
165
 
166
+ $ampforwp_license_deactivate = sanitize_text_field( wp_unslash($_POST['ampforwp_license_deactivate']));
167
  // retrieve the license from the database
168
  $selectedOption = get_option('redux_builder_amp',true);
169
  $license = '';//trim( get_option( 'amp_ads_license_key' ) );
170
  $pluginItemName = '';
171
  $pluginItemStoreUrl = '';
172
  if( isset($selectedOption['amp-license']) && "" != $selectedOption['amp-license']){
173
+ $pluginsDetail = $selectedOption['amp-license'][$ampforwp_license_deactivate];
174
  $license = $pluginsDetail['license'];
175
  $pluginItemName = $pluginsDetail['item_name'];
176
  $pluginItemStoreUrl = $pluginsDetail['store_url'];
193
  if ( is_wp_error( $response ) ) {
194
  $message = $response->get_error_message();
195
  } else {
196
+ $message = esc_html__( 'An error occurred, please try again.', 'advanced-amp-ads' );
197
  }
198
 
199
+ echo json_encode(array('status'=>500,"message"=>$message,"test"=>$selectedOption['amp-license'][$ampforwp_license_deactivate], "dsc"=>$pluginItemStoreUrl));
 
 
 
 
200
  exit();
201
  }else{
202
  $message = 'Plugin deactivated successfully';
210
  delete_option( 'amp_ads_license_status' );
211
  }
212
  if( isset($selectedOption['amp-license']) && "" != $selectedOption['amp-license']){
213
+ $selectedOption['amp-license'][$ampforwp_license_deactivate]['status']= 'invalid';
214
+ $selectedOption['amp-license'][$ampforwp_license_deactivate]['license']= '';
215
  update_option( 'redux_builder_amp', $selectedOption );
216
  }
217
  echo json_encode(array('status'=>200,"message"=>$message));
221
  }
222
  }
223
  add_action( 'wp_ajax_ampforwp_deactivate_license', 'ampforwp_deactivate_license' );
 
 
224
 
225
  /************************************
226
  * this illustrates how to check if
231
  *************************************/
232
 
233
  function ampforwp_check_extension_license() {
234
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_extension' ) ) {
235
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
236
+ die;
237
+ }
238
  global $wp_version;
239
 
240
  //$license = trim( get_option( 'amp_ads_license_key' ) );
241
+ $plugin_name = sanitize_text_field( wp_unslash($_POST['ampforwp_license_deactivate']));
242
 
243
  $selectedOption = get_option('redux_builder_amp',true);
244
  $license = '';//trim( get_option( 'amp_ads_license_key' ) );
245
  $pluginItemName = '';
246
  $pluginItemStoreUrl = '';
247
  if( isset($selectedOption['amp-license']) && "" != $selectedOption['amp-license']){
248
+ $pluginsDetail = $selectedOption['amp-license'][$plugin_name];
249
  $license = $pluginsDetail['license'];
250
  $pluginItemName = $pluginsDetail['item_name'];
251
  $pluginItemStoreUrl = $pluginsDetail['store_url'];
255
  'edd_action' => 'check_license',
256
  'license' => $license,
257
  'item_name' => urlencode( $pluginItemName ),
258
+ 'url' => esc_url(home_url())
259
  );
260
 
261
  // Call the custom API.
287
  $message = urldecode( $_GET['message'] );
288
  ?>
289
  <div class="error">
290
+ <p><?php echo wp_kses_post( $message); ?></p>
291
  </div>
292
  <?php
293
  break;
322
 
323
  $api_params = array(
324
  'edd_action' => 'check_license',
325
+ 'license' => esc_attr($license),
326
  'item_name' => urlencode( $item_name ),
327
+ 'url' => esc_url(home_url())
328
  );
329
 
330
  // Call the custom API.
 
331
  $response = wp_remote_post( $store_url, array( 'timeout' => 15, 'body' => $api_params ) );
332
 
333
  if ( is_wp_error( $response ) )
345
  } else if( isset( $license_data->license_limit ) ) {
346
  // Using the license_limit to define how many plugins can be tracked
347
  $limit = $license_data->license_limit;
348
+ }
 
 
 
349
  return $limit;
350
 
351
  }
includes/vendor/amp/amp.php CHANGED
@@ -1,4 +1,11 @@
1
  <?php
 
 
 
 
 
 
 
2
  /**
3
  * Plugin Name: AMP
4
  * Description: Add AMP support to your WordPress site.
1
  <?php
2
+ /*!
3
+ * AMP v0.4.2
4
+ * https://github.com/automattic/amp-wp
5
+ *
6
+ * Licensed GPLv2 or later
7
+ */
8
+
9
  /**
10
  * Plugin Name: AMP
11
  * Description: Add AMP support to your WordPress site.
includes/vendor/amp/includes/admin/class-amp-customizer.php CHANGED
@@ -110,8 +110,8 @@ class AMP_Template_Customizer {
110
 
111
  $this->wp_customize->add_panel( self::PANEL_ID, array(
112
  'type' => 'amp',
113
- 'title' => __( 'AMP', 'accelerated-mobile-pages' ),
114
- 'description' => sprintf( __( '<a href="%s" target="_blank">The AMP Project</a> is a Google-led initiative that dramatically improves loading speeds on phones and tablets. You can use the Customizer to preview changes to your AMP template before publishing them.', 'accelerated-mobile-pages' ), 'https://ampproject.org' ),
115
  ) );
116
 
117
  do_action( 'amp_customizer_register_ui', $this->wp_customize );
110
 
111
  $this->wp_customize->add_panel( self::PANEL_ID, array(
112
  'type' => 'amp',
113
+ 'title' => esc_html__( 'AMP', 'accelerated-mobile-pages' ),
114
+ 'description' => sprintf( esc_html__( '<a href="%s" target="_blank">The AMP Project</a> is a Google-led initiative that dramatically improves loading speeds on phones and tablets. You can use the Customizer to preview changes to your AMP template before publishing them.', 'accelerated-mobile-pages' ), 'https://ampproject.org' ),
115
  ) );
116
 
117
  do_action( 'amp_customizer_register_ui', $this->wp_customize );
includes/vendor/amp/includes/admin/functions.php CHANGED
@@ -35,8 +35,8 @@ function amp_add_customizer_link() {
35
 
36
  // Add the theme page.
37
  $page = add_theme_page(
38
- __( 'AMP', 'accelerated-mobile-pages' ),
39
- __( 'AMP', 'accelerated-mobile-pages' ),
40
  'edit_theme_options',
41
  $menu_slug
42
  );
35
 
36
  // Add the theme page.
37
  $page = add_theme_page(
38
+ esc_html__( 'AMP', 'accelerated-mobile-pages' ),
39
+ esc_html__( 'AMP', 'accelerated-mobile-pages' ),
40
  'edit_theme_options',
41
  $menu_slug
42
  );
includes/vendor/amp/includes/class-amp-post-template.php CHANGED
@@ -118,7 +118,7 @@ class AMP_Post_Template {
118
  if ( isset( $this->data[ $property ] ) ) {
119
  return $this->data[ $property ] = $value ;
120
  } else {
121
- _doing_it_wrong( __METHOD__, sprintf( __( 'Called for non-existant key ("%s").', 'amp' ), esc_html( $property ) ), '0.1' );
122
  }
123
 
124
  return $value;
@@ -240,8 +240,8 @@ class AMP_Post_Template {
240
 
241
  $comments_link_url = get_comments_link( $this->ID );
242
  $comments_link_text = $comments_open
243
- ? __( 'Leave a Comment', 'amp' )
244
- : __( 'View Comments', 'amp' );
245
 
246
  $this->add_data( array(
247
  'comments_link_url' => $comments_link_url,
118
  if ( isset( $this->data[ $property ] ) ) {
119
  return $this->data[ $property ] = $value ;
120
  } else {
121
+ _doing_it_wrong( __METHOD__, sprintf( esc_html__( 'Called for non-existant key ("%s").', 'amp' ), esc_html( $property ) ), '0.1' );
122
  }
123
 
124
  return $value;
240
 
241
  $comments_link_url = get_comments_link( $this->ID );
242
  $comments_link_text = $comments_open
243
+ ? esc_html__( 'Leave a Comment', 'amp' )
244
+ : esc_html__( 'View Comments', 'amp' );
245
 
246
  $this->add_data( array(
247
  'comments_link_url' => $comments_link_url,
includes/vendor/amp/includes/settings/class-amp-customizer-design-settings.php CHANGED
@@ -45,7 +45,7 @@ class AMP_Customizer_Design_Settings {
45
 
46
  public function register_customizer_ui( $wp_customize ) {
47
  $wp_customize->add_section( 'amp_design', array(
48
- 'title' => __( 'Design', 'accelerated-mobile-pages' ),
49
  'panel' => AMP_Template_Customizer::PANEL_ID,
50
  ) );
51
 
@@ -53,7 +53,7 @@ class AMP_Customizer_Design_Settings {
53
  $wp_customize->add_control(
54
  new WP_Customize_Color_Control( $wp_customize, 'amp_header_color', array(
55
  'settings' => 'amp_customizer[header_color]',
56
- 'label' => __( 'Header Text Color', 'accelerated-mobile-pages' ),
57
  'section' => 'amp_design',
58
  'priority' => 10,
59
  ) )
@@ -63,7 +63,7 @@ class AMP_Customizer_Design_Settings {
63
  $wp_customize->add_control(
64
  new WP_Customize_Color_Control( $wp_customize, 'amp_header_background_color', array(
65
  'settings' => 'amp_customizer[header_background_color]',
66
- 'label' => __( 'Header Background & Link Color', 'accelerated-mobile-pages' ),
67
  'section' => 'amp_design',
68
  'priority' => 20,
69
  ) )
@@ -72,7 +72,7 @@ class AMP_Customizer_Design_Settings {
72
  // Background color scheme
73
  $wp_customize->add_control( 'amp_color_scheme', array(
74
  'settings' => 'amp_customizer[color_scheme]',
75
- 'label' => __( 'Color Scheme', 'accelerated-mobile-pages' ),
76
  'section' => 'amp_design',
77
  'type' => 'radio',
78
  'priority' => 30,
@@ -109,8 +109,8 @@ class AMP_Customizer_Design_Settings {
109
 
110
  protected static function get_color_scheme_names() {
111
  return array(
112
- 'light' => __( 'Light', 'accelerated-mobile-pages' ),
113
- 'dark' => __( 'Dark', 'accelerated-mobile-pages' ),
114
  );
115
  }
116
 
45
 
46
  public function register_customizer_ui( $wp_customize ) {
47
  $wp_customize->add_section( 'amp_design', array(
48
+ 'title' => esc_html__( 'Design', 'accelerated-mobile-pages' ),
49
  'panel' => AMP_Template_Customizer::PANEL_ID,
50
  ) );
51
 
53
  $wp_customize->add_control(
54
  new WP_Customize_Color_Control( $wp_customize, 'amp_header_color', array(
55
  'settings' => 'amp_customizer[header_color]',
56
+ 'label' => esc_html__( 'Header Text Color', 'accelerated-mobile-pages' ),
57
  'section' => 'amp_design',
58
  'priority' => 10,
59
  ) )
63
  $wp_customize->add_control(
64
  new WP_Customize_Color_Control( $wp_customize, 'amp_header_background_color', array(
65
  'settings' => 'amp_customizer[header_background_color]',
66
+ 'label' => esc_html__( 'Header Background & Link Color', 'accelerated-mobile-pages' ),
67
  'section' => 'amp_design',
68
  'priority' => 20,
69
  ) )
72
  // Background color scheme
73
  $wp_customize->add_control( 'amp_color_scheme', array(
74
  'settings' => 'amp_customizer[color_scheme]',
75
+ 'label' => esc_html__( 'Color Scheme', 'accelerated-mobile-pages' ),
76
  'section' => 'amp_design',
77
  'type' => 'radio',
78
  'priority' => 30,
109
 
110
  protected static function get_color_scheme_names() {
111
  return array(
112
+ 'light' => esc_html__( 'Light', 'accelerated-mobile-pages' ),
113
+ 'dark' => esc_html__( 'Dark', 'accelerated-mobile-pages' ),
114
  );
115
  }
116
 
includes/vendor/amp/templates/footer.php CHANGED
@@ -2,8 +2,8 @@
2
  <div>
3
  <h2><?php echo esc_html( $this->get( 'blog_name' ) ); ?></h2>
4
  <p>
5
- <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'accelerated-mobile-pages' ) ); ?>"><?php printf( __( 'Powered by %s', 'accelerated-mobile-pages' ), 'WordPress' ); ?></a>
6
  </p>
7
- <a href="#top" class="back-to-top"><?php _e( 'Back to top', 'accelerated-mobile-pages' ); ?></a>
8
  </div>
9
  </footer>
2
  <div>
3
  <h2><?php echo esc_html( $this->get( 'blog_name' ) ); ?></h2>
4
  <p>
5
+ <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'accelerated-mobile-pages' ) ); ?>"><?php printf( esc_html__( 'Powered by %s', 'accelerated-mobile-pages' ), 'WordPress' ); ?></a>
6
  </p>
7
+ <a href="#top" class="back-to-top"><?php esc_html_e( 'Back to top', 'accelerated-mobile-pages' ); ?></a>
8
  </div>
9
  </footer>
includes/vendor/aq_resizer.php CHANGED
@@ -1,6 +1,19 @@
1
  <?php
2
-
 
 
 
3
  /**
 
 
 
 
 
 
 
 
 
 
4
  * Title : Aqua Resizer
5
  * Description : Resizes WordPress images on the fly
6
  * Version : 1.2.2
@@ -263,7 +276,6 @@ if(!function_exists('ampforwp_aq_resize')) {
263
  1 => $width,
264
  2 => $height
265
  );
266
- //print_r(jetpack_photon_url( $url, $args ));die;
267
  return $image;
268
  } else {
269
  $aq_resize = Aq_Resize::getInstance();
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  /**
7
+ * Aqua Resizer plugin
8
+ * Version 1.2.2
9
+ *
10
+ * Dual licensed under the MIT and GPL licenses:
11
+ * http://www.opensource.org/licenses/mit-license.php
12
+ * http://sam.zoy.org/wtfpl/
13
+ *
14
+ * Thanks to Aqua Resizer Team for some excellent contributions!
15
+ *
16
+ *
17
  * Title : Aqua Resizer
18
  * Description : Resizes WordPress images on the fly
19
  * Version : 1.2.2
276
  1 => $width,
277
  2 => $height
278
  );
 
279
  return $image;
280
  } else {
281
  $aq_resize = Aq_Resize::getInstance();
includes/vendor/tinymce-widget/includes/class-admin-pointer.php CHANGED
@@ -163,9 +163,9 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Admin_Pointer' ) ) {
163
  'options' => array(
164
  'content' => sprintf( '<h3>%s</h3> <p>%s</p>',
165
  /* translators: title for the dismissable admin pointer tooltip (same as plugin name) */
166
- __( 'Black Studio TinyMCE Widget', 'black-studio-tinymce-widget' ),
167
  /* translators: text for the dismissable admin pointer tooltip */
168
- __( 'The Visual Editor widget allows you to insert rich text and media objects in your sidebars', 'black-studio-tinymce-widget' )
169
  ),
170
  'position' => array( 'edge' => 'left', 'align' => 'middle' )
171
  )
163
  'options' => array(
164
  'content' => sprintf( '<h3>%s</h3> <p>%s</p>',
165
  /* translators: title for the dismissable admin pointer tooltip (same as plugin name) */
166
+ esc_html__( 'Black Studio TinyMCE Widget', 'black-studio-tinymce-widget' ),
167
  /* translators: text for the dismissable admin pointer tooltip */
168
+ esc_html__( 'The Visual Editor widget allows you to insert rich text and media objects in your sidebars', 'black-studio-tinymce-widget' )
169
  ),
170
  'position' => array( 'edge' => 'left', 'align' => 'middle' )
171
  )
includes/vendor/tinymce-widget/includes/class-admin.php CHANGED
@@ -243,7 +243,7 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Admin' ) ) {
243
  'activate_events' => $activate_events,
244
  'deactivate_events' => $deactivate_events,
245
  /* translators: error message shown when a duplicated widget ID is detected */
246
- 'error_duplicate_id' => __( 'ERROR: Duplicate widget ID detected. To avoid content loss, please create a new widget with the same content and then delete this one.', 'black-studio-tinymce-widget' )
247
  );
248
  wp_localize_script( apply_filters( 'black-studio-tinymce-widget-script', 'tinymce-widget' ), 'bstw_data', $data );
249
  }
@@ -331,17 +331,17 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Admin' ) ) {
331
  public function init_links() {
332
  $this->links = array(
333
  /* translators: text used for plugin home link */
334
- 'https://wordpress.org/plugins/black-studio-tinymce-widget/' => __( 'Home', 'black-studio-tinymce-widget' ),
335
  /* translators: text used for support faq link */
336
- 'https://wordpress.org/plugins/black-studio-tinymce-widget/faq/' => __( 'FAQ', 'black-studio-tinymce-widget' ),
337
  /* translators: text used for support forum link */
338
- 'https://wordpress.org/support/plugin/black-studio-tinymce-widget' => __( 'Support', 'black-studio-tinymce-widget' ),
339
  /* translators: text used for reviews link */
340
- 'https://wordpress.org/support/view/plugin-reviews/black-studio-tinymce-widget' => __( 'Rate', 'black-studio-tinymce-widget' ),
341
  /* translators: text used for follow on twitter link */
342
- 'https://twitter.com/blackstudioita' => __( 'Follow', 'black-studio-tinymce-widget' ),
343
  /* translators: text used for donation link */
344
- 'http://www.blackstudio.it/en/wordpress-plugins/black-studio-tinymce-widget/' => __( 'Donate', 'black-studio-tinymce-widget' ),
345
  );
346
  }
347
 
243
  'activate_events' => $activate_events,
244
  'deactivate_events' => $deactivate_events,
245
  /* translators: error message shown when a duplicated widget ID is detected */
246
+ 'error_duplicate_id' => esc_html__( 'ERROR: Duplicate widget ID detected. To avoid content loss, please create a new widget with the same content and then delete this one.', 'black-studio-tinymce-widget' )
247
  );
248
  wp_localize_script( apply_filters( 'black-studio-tinymce-widget-script', 'tinymce-widget' ), 'bstw_data', $data );
249
  }
331
  public function init_links() {
332
  $this->links = array(
333
  /* translators: text used for plugin home link */
334
+ 'https://wordpress.org/plugins/black-studio-tinymce-widget/' => esc_html__( 'Home', 'black-studio-tinymce-widget' ),
335
  /* translators: text used for support faq link */
336
+ 'https://wordpress.org/plugins/black-studio-tinymce-widget/faq/' => esc_html__( 'FAQ', 'black-studio-tinymce-widget' ),
337
  /* translators: text used for support forum link */
338
+ 'https://wordpress.org/support/plugin/black-studio-tinymce-widget' => esc_html__( 'Support', 'black-studio-tinymce-widget' ),
339
  /* translators: text used for reviews link */
340
+ 'https://wordpress.org/support/view/plugin-reviews/black-studio-tinymce-widget' => esc_html__( 'Rate', 'black-studio-tinymce-widget' ),
341
  /* translators: text used for follow on twitter link */
342
+ 'https://twitter.com/blackstudioita' => esc_html__( 'Follow', 'black-studio-tinymce-widget' ),
343
  /* translators: text used for donation link */
344
+ 'http://www.blackstudio.it/en/wordpress-plugins/black-studio-tinymce-widget/' => esc_html__( 'Donate', 'black-studio-tinymce-widget' ),
345
  );
346
  }
347
 
includes/vendor/tinymce-widget/includes/class-widget.php CHANGED
@@ -24,9 +24,9 @@ if ( ! class_exists( 'WP_Widget_Black_Studio_TinyMCE' ) ) {
24
  */
25
  public function __construct() {
26
  /* translators: title of the widget */
27
- $widget_title = __( 'AMP Text Module', 'black-studio-tinymce-widget' );
28
  /* translators: description of the widget, shown in available widgets */
29
- $widget_description = __( 'Arbitrary text or HTML with visual editor', 'black-studio-tinymce-widget' );
30
  $widget_ops = array( 'classname' => 'widget_black_studio_tinymce', 'description' => $widget_description );
31
  $control_ops = array( 'width' => 800, 'height' => 600 );
32
  parent::__construct( 'black-studio-tinymce', $widget_title, $widget_ops, $control_ops );
24
  */
25
  public function __construct() {
26
  /* translators: title of the widget */
27
+ $widget_title = esc_html__( 'AMP Text Module', 'black-studio-tinymce-widget' );
28
  /* translators: description of the widget, shown in available widgets */
29
+ $widget_description = esc_html__( 'Arbitrary text or HTML with visual editor', 'black-studio-tinymce-widget' );
30
  $widget_ops = array( 'classname' => 'widget_black_studio_tinymce', 'description' => $widget_description );
31
  $control_ops = array( 'width' => 800, 'height' => 600 );
32
  parent::__construct( 'black-studio-tinymce', $widget_title, $widget_ops, $control_ops );
includes/vendor/tinymce-widget/tinymce-widget.php CHANGED
@@ -1,15 +1,24 @@
1
  <?php
2
- /*
3
- Plugin Name: Black Studio TinyMCE Widget
4
- Plugin URI: https://wordpress.org/plugins/black-studio-tinymce-widget/
5
- Description: Adds a new "Visual Editor" widget type based on the native WordPress TinyMCE editor.
6
- Version: 2.3.2
7
- Author: Black Studio
8
- Author URI: http://www.blackstudio.it
9
- Requires at least: 3.1
10
- Tested up to: 4.6
11
- License: GPLv3
12
- Text Domain: black-studio-tinymce-widget
 
 
 
 
 
 
 
 
 
13
  */
14
 
15
  // Exit if accessed directly
1
  <?php
2
+ /**
3
+ * Black Studio TinyMCE Widget plugin
4
+ * Version 2.3.2
5
+ *
6
+ * Dual licensed under the MIT and GPL licenses:
7
+ * GPLv3
8
+ *
9
+ * Thanks to Black Studio Team for some excellent contributions!
10
+ *
11
+ *
12
+ * Plugin Name: Black Studio TinyMCE Widget
13
+ * Plugin URI: https://wordpress.org/plugins/black-studio-tinymce-widget/
14
+ * Description: Adds a new "Visual Editor" widget type based on the native WordPress TinyMCE editor.
15
+ * Version: 2.3.2
16
+ * Author: Black Studio
17
+ * Author URI: http://www.blackstudio.it
18
+ * Requires at least: 3.1
19
+ * Tested up to: 4.6
20
+ * License: GPLv3
21
+ * Text Domain: black-studio-tinymce-widget
22
  */
23
 
24
  // Exit if accessed directly
includes/welcome.php CHANGED
@@ -1,4 +1,10 @@
1
- <?php add_action( 'admin_init', 'ampforwp_welcome_screen_do_activation_redirect' );
 
 
 
 
 
 
2
  function ampforwp_welcome_screen_do_activation_redirect() {
3
  // Bail if no activation redirect
4
  if ( ! get_transient( 'ampforwp_welcome_screen_activation_redirect' ) ) {
@@ -14,70 +20,46 @@ function ampforwp_welcome_screen_do_activation_redirect() {
14
  }
15
 
16
  // Redirect to welcome page
17
- wp_safe_redirect( add_query_arg( array( 'page' => 'ampforwp-welcome-page' ), admin_url( 'admin.php' ) ) );
18
- }
19
-
20
- // add_action( 'admin_init', 'ampforwp_welcome_screen_do_activation_redirect_parent' );
21
- function ampforwp_welcome_screen_do_activation_redirect_parent() {
22
- include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
23
- $amp_plugin_activation_check = is_plugin_active( 'amp/amp.php' );
24
-
25
- // Bail if option is already set or plugin is deactivated
26
- if ( get_option( 'ampforwp_parent_plugin_check' ) || $amp_plugin_activation_check == false ) {
27
- return;
28
- }
29
- // Bail if activating from network, or bulk
30
- if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
31
- return;
32
- }
33
-
34
- // Redirect to welcome page
35
- wp_safe_redirect( add_query_arg( array( 'page' => 'ampforwp-welcome-page' ), admin_url( 'admin.php' ) ) );
36
-
37
- update_option( 'ampforwp_parent_plugin_check', true );
38
  }
39
 
40
  add_filter('ampforwp_add_admin_subpages', 'ampforwp_add_welcome_pages');
41
  function ampforwp_add_welcome_pages($sections){
42
-
43
-
44
  $sections[] = array(
45
- 'page_title'=> __('Welcome To AMPforWP plugin','accelerated-mobile-pages'),
46
- 'menu_title'=>__('Welcome to AMP','accelerated-mobile-pages'),
47
  'page_permissions'=>'manage_options',
48
  'menu_slug' => 'ampforwp-welcome-page',
49
  'callback' => 'ampforwp_welcome_screen_content',
50
  'custom_amp_menu' => true
51
  );
52
- //array_splice($sections,10,0,$newsection);
53
  return $sections;
54
  }
55
 
56
  function ampforwp_welcome_screen_content() {
57
  ?>
58
  <div class="wrap">
59
- <?php // echo ampforwp_plugin_parent_activation(); ?>
60
-
61
  <div class="clear"></div>
62
 
63
  <div class="ampforwp-post-installtion-instructions">
64
 
65
- <h1 class="amp_installed_heading"><?php echo __('AMP is now Installed!','accelerated-mobile-pages') ?></h1>
66
- <div class="amp_installed_text"><p><?php echo __('Thank you so much for installing the AMPforWP plugin!','accelerated-mobile-pages') ?></p>
67
- <p><?php echo __('Our team works really hard to deliver good user experience to you.','accelerated-mobile-pages') ?></p></div>
68
  <div class="getstarted_wrapper">
69
  <div class="amp_user_onboarding">
70
  <div class="amp_new_user amp_user_onboarding_choose">
71
  <div class="amp_user_avatar"></div>
72
- <h3>I'm a New User!</h3>
73
- <p>We have recommend you to go through AMP installation wizard which helps setup the Basic AMP and get started immediatly.</p>
74
- <a href="<?php echo admin_url('plugins.php?page=ampforwptourinstaller&ampforwp_install=1');?>">Run Installation Wizard</a>
75
  </div>
76
  <div class="amp_expert_user amp_user_onboarding_choose">
77
  <div class="amp_user_avatar"></div>
78
- <h3>I'm an Experienced User!</h3>
79
- <p>We have many settings in Options Panel to help you setup the AMP perfectly to according to your taste & needs.</p>
80
- <a href="<?php echo admin_url('admin.php?tabid=opt-text-subsection&page=amp_options');?>">AMP Options Panel</a>
81
  </div>
82
 
83
  <div class="clear"></div>
@@ -95,25 +77,25 @@ function ampforwp_welcome_screen_content() {
95
 
96
  <div class="getstarted_wrapper nh-b">
97
  <h1 style="color: #008606;font-weight: 300;margin-top: 35px;">
98
- <i class="dashicons dashicons-editor-help" style="font-size: 34px;margin-right: 18px;margin-top: -1px;"></i><?php echo __('Need Help?','accelerated-mobile-pages') ?>
99
  </h1>
100
- <div class="amp_installed_text"><p><?php echo __('We\'re bunch of passionate people that are dedicated towards helping our users. We will be happy to help you!','accelerated-mobile-pages') ?></p></div>
101
  <div class="getstarted_options">
102
- <p><b>Getting Started</b></p>
103
  <ul class="getstarted_ul">
104
- <li><a href="https://ampforwp.com/tutorials/article-categories/installation-updating/" target="_blank">Installation &amp; Setup</a></li>
105
- <li><a href="https://ampforwp.com/tutorials/article-categories/settings-options/" target="_blank">Settings &amp; Options</a></li>
106
- <li><a href="https://ampforwp.com/tutorials/article-categories/setup-amp/" target="_blank">Setup AMP</a></li>
107
- <li><a href="https://ampforwp.com/tutorials/article-categories/page-builder/" target="_blank">Page Builder</a></li>
108
  </ul>
109
  </div>
110
  <div class="getstarted_options">
111
- <p><b>Useful Links</b></p>
112
  <ul class="getstarted_ul">
113
- <li><a href="https://ampforwp.com/tutorials/article-categories/extension/" target="_blank">Extensions &amp; Themes Docs</a></li>
114
- <li><a href="https://ampforwp.com/tutorials/article-categories/extending/" target="_blank">Developers Docs</a></li>
115
- <li><a href="https://ampforwp.com/amp-theme-framework/" target="_blank">Create a Custom Theme for AMP</a></li>
116
- <li><a href="https://ampforwp.com/tutorials/article-categories/how-to/" target="_blank">General How To's</a></li>
117
  </ul>
118
  </div>
119
  <div class="clear"></div>
@@ -124,224 +106,6 @@ function ampforwp_welcome_screen_content() {
124
  </div> <?php
125
  }
126
 
127
- function ampforwp_plugin_parent_activation() {
128
-
129
- add_thickbox(); // @since 1.0.53
130
-
131
- include( ABSPATH . "wp-admin/includes/plugin-install.php" );
132
- global $tabs, $tab, $paged, $type, $term;
133
- $tabs = array();
134
- $tab = "slug";
135
- $per_page = 1;
136
- $args = array
137
- (
138
- "slug" => "amp",
139
- "page" => $paged,
140
- "per_page" => $per_page,
141
- "fields" => array( "last_updated" => true, "short_description" => true, "downloaded" => false, "icons" => true ),
142
- //"locale" => get_locale(),
143
- );
144
- $args = apply_filters( "install_plugins_table_api_args_$tab", $args );
145
- $api = plugins_api( "plugin_information", $args );
146
- $item = $api;
147
-
148
- $plugins_allowedtags = array(
149
- 'a' => array( 'href' => array(), 'title' => array(), 'target' => array() ),
150
- 'abbr' => array( 'title' => array() ), 'acronym' => array( 'title' => array() ),
151
- 'code' => array(), 'pre' => array(), 'em' => array(), 'strong' => array(),
152
- 'div' => array( 'class' => array() ), 'span' => array( 'class' => array() ),
153
- 'p' => array(), 'ul' => array(), 'ol' => array(), 'li' => array(),
154
- 'h1' => array(), 'h2' => array(), 'h3' => array(), 'h4' => array(), 'h5' => array(), 'h6' => array(),
155
- 'img' => array( 'src' => array(), 'class' => array(), 'alt' => array() )
156
- );
157
-
158
- ?>
159
- <form id="plugin-filter">
160
-
161
- <div class="wrap">
162
- <div class="ampforwp-pre-installtion-instructions">
163
- <h1 style="color:#388E3C;font-weight:500"><i class="dashicons dashicons-warning"></i><?php echo __('Almost done. One last step remaining.</h1>
164
- <p><b>This plugin requires the following plugin: <i>AMP</i></b></p>
165
- <p>Automattic, the company behind WordPress has created a framework for AMP (also known as Default AMP plugin) which we are using as the core.</p><p>To complete the installation, you just need to click on the \'Finish Installation\' button and default AMP plugin will be installed. Remember, to activate the plugin and you will be redirected to this screen again.</p>','accelerated-mobile-pages') ?>
166
- <div id="ampforwp-network-status"></div>
167
- </div>
168
-
169
- <div style="margin-top:30px;" class="wp-list-table widefat plugin-install">
170
- <div id="the-list">
171
-
172
- <?php
173
- function ampforwp_plugin_activation_link($plugin) {
174
- $activateUrl = sprintf(admin_url('plugins.php?action=activate&plugin=%s&plugin_status=all&paged=1&s'), $plugin);
175
- // change the plugin request to the plugin to pass the nonce check
176
- $_REQUEST['plugin'] = $plugin;
177
- $activateUrl = wp_nonce_url($activateUrl, 'activate-plugin_' . $plugin, '_wpnonce');
178
-
179
- return $activateUrl;
180
- }
181
-
182
- // foreach ( (array) $item as $plugin ) {
183
- $plugin = $item;
184
- if ( is_object( $plugin ) ) {
185
- $plugin = (array) $plugin;
186
- }
187
-
188
- $title = wp_kses( $plugin['name'], $plugins_allowedtags );
189
- // Remove any HTML from the description.
190
- $description = strip_tags( $plugin['short_description'] );
191
- $version = wp_kses( $plugin['version'], $plugins_allowedtags );
192
-
193
- $name = strip_tags( $title . ' ' . $version );
194
-
195
- $author = wp_kses( $plugin['author'], $plugins_allowedtags );
196
- if ( ! empty( $author ) ) {
197
- $author = ' <cite>' . sprintf( __( 'By %s' ), $author ) . '</cite>';
198
- }
199
-
200
- $action_links = array();
201
-
202
- if ( current_user_can( 'install_plugins' ) || current_user_can( 'update_plugins' ) ) {
203
- $status = install_plugin_install_status( $plugin );
204
-
205
- if ( $status['status'] == 'latest_installed' && is_plugin_inactive( $status['file'] ) ) {
206
- $status['activation'] = 'not_activated';
207
- } elseif ( $status['status'] == 'latest_installed' && is_plugin_active( $status['file'] ) ) {
208
- $status['activation'] = 'activated';
209
-
210
- } elseif ( $status['status'] == 'update_available' && is_plugin_active( $status['file'] ) ) {
211
- $status['activation'] = 'activated_update_required';
212
-
213
- } else {
214
- $status['activation'] = 'not_installed';
215
- }
216
-
217
- $activation_link = ampforwp_plugin_activation_link($status['file']);
218
-
219
- switch ( $status['status'] ) {
220
- case 'install':
221
- if ( $status['url'] ) {
222
- /* translators: 1: Plugin name and version. */
223
- $action_links[] = '<a class="install-now button-secondary ampforwp-button-install" href="' . $status['url'] . '" aria-label="' . esc_attr( sprintf( __( 'Install %s now','accelerated-mobile-pages' ), $name ) ) . '">' . __( 'Install Now','accelerated-mobile-pages' ) . '</a>';
224
- }
225
-
226
- break;
227
- case 'update_available':
228
- if ( $status['url'] ) {
229
- /* translators: 1: Plugin name and version */
230
- $action_links[] = '<a class="button ampforwp-button-update" href="' . $status['url'] . '" aria-label="' . esc_attr( sprintf( __( 'Update %s now','accelerated-mobile-pages' ), $name ) ) . '">' . __( 'Update Now','accelerated-mobile-pages' ) . '</a>';
231
- }
232
-
233
- break;
234
- case 'latest_installed':
235
- if ( $status['activation'] == 'not_activated') {
236
- $action_links[] = '<a class="install-now button-secondary ampforwp-button-install" href="' . $activation_link . '" aria-label="' . esc_attr( sprintf( __( 'Activate %s ','accelerated-mobile-pages' ), $name ) ) . '">' . __( 'Activate','accelerated-mobile-pages' ) . '</a>';
237
- }
238
- break;
239
- case 'newer_installed':
240
- $action_links[] = '<span class="button button-disabled" title="' . esc_attr__( 'This plugin is already installed and is up to date','accelerated-mobile-pages' ) . ' ">' . _x( 'Installed', 'plugin','accelerated-mobile-pages' ) . '</span>';
241
- break;
242
- }
243
- }
244
-
245
- $details_link = self_admin_url( 'plugin-install.php?tab=plugin-information&amp;plugin=' . $plugin['slug'] .
246
- '&amp;TB_iframe=true&amp;width=750&amp;height=550' );
247
-
248
- /* translators: 1: Plugin name and version. */
249
- $action_links[] = '<a href="' . esc_url( $details_link ) . '" class="thickbox" aria-label="' . esc_attr( sprintf( __( 'More information about %s' ), $name ) ) . '" data-title="' . esc_attr( $name ) . '">' . __( 'More Details','accelerated-mobile-pages' ) . '</a>';
250
-
251
- if ( !empty( $plugin['icons']['svg'] ) ) {
252
- $plugin_icon_url = $plugin['icons']['svg'];
253
- } elseif ( !empty( $plugin['icons']['2x'] ) ) {
254
- $plugin_icon_url = $plugin['icons']['2x'];
255
- } elseif ( !empty( $plugin['icons']['1x'] ) ) {
256
- $plugin_icon_url = $plugin['icons']['1x'];
257
- } else {
258
- $plugin_icon_url = $plugin['icons']['default'];
259
- }
260
-
261
- /**
262
- * Filter the install action links for a plugin.
263
- *
264
- * @since 2.7.0
265
- *
266
- * @param array $action_links An array of plugin action hyperlinks. Defaults are links to Details and Install Now.
267
- * @param array $plugin The plugin currently being listed.
268
- */
269
- $action_links = apply_filters( 'plugin_install_action_links', $action_links, $plugin );
270
- ?>
271
- <div class="plugin-card drop-shadow lifted" >
272
- <div class="plugin-card-top" style="min-height: 135px !important;">
273
- <?php if ( isset( $plugin["slug"] ) && $plugin["slug"] == 'easy-media-gallery' ) {echo '<div class="most_popular"></div>';} ?>
274
- <span href="<?php echo esc_url( $details_link ); ?>" class="thickbox plugin-icon"><img width="128" height="128" src="<?php echo esc_attr( $plugin_icon_url ) ?>" /></span>
275
- <div class="name column-name" style="margin-right: 20px !important;">
276
- <h4><?php echo $title; ?></h4>
277
- </div>
278
- <div class="desc column-description" style="margin-right: 20px !important;">
279
- <p><?php echo $description; ?></p>
280
- <p class="authors"><?php echo __('by Automattic','accelerated-mobile-pages') ?></p>
281
- </div>
282
- </div>
283
- <div class="ampforwp-button-con">
284
- <?php
285
- if ( $action_links ) {
286
- echo '<ul class="ampforwp-plugin-action-buttons ampforwp-custom-btn">';
287
- echo '<li>' . $action_links[0] . '</li>';
288
- echo '</ul>';
289
- } ?>
290
- </div>
291
- </div>
292
- <?php
293
- // } ?>
294
-
295
- </div>
296
- </div>
297
- </div>
298
- </form>
299
-
300
- <?php
301
- }
302
-
303
- // add_action('admin_footer','ampforwp_offline_admin_notice');
304
- function ampforwp_offline_admin_notice() {
305
-
306
- include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
307
- $amp_plugin_activation_check = is_plugin_active( 'amp/amp.php' );
308
-
309
- if ( $amp_plugin_activation_check ) { ?>
310
- <style>
311
- #layout-builder h2{
312
- background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjMxNHB4IiBoZWlnaHQ9IjMxNXB4IiB2aWV3Qm94PSIwIDAgMzE0IDMxNSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDwhLS0gR2VuZXJhdG9yOiBTa2V0Y2ggNDEgKDM1MzI2KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5TaGFwZTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSIjODI4NzhjIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSIyNjA3MSIgZmlsbD0iIzgyODc4YyI+CiAgICAgICAgICAgIDxnIGlkPSJDYXBhXzEiPgogICAgICAgICAgICAgICAgPGcgaWQ9Il94MzJfNDAuX1Bvd2VyIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTU3LjAwNywwIEM3MC4yOTIsMCAwLDcwLjI5MiAwLDE1Ny4wMDcgQzAsMjQzLjcxNSA3MC4yOTIsMzE0LjAxNCAxNTcuMDA3LDMxNC4wMTQgQzI0My43MTYsMzE0LjAxNCAzMTQuMDE0LDI0My43MTUgMzE0LjAxNCwxNTcuMDA3IEMzMTQuMDE0LDcwLjI5MiAyNDMuNzE2LDAgMTU3LjAwNywwIFogTTE1Ny4wMDcsMjgyLjYxMiBDODcuNjM0LDI4Mi42MTIgMzEuNDAyLDIyNi4zNzIgMzEuNDAyLDE1Ny4wMDcgQzMxLjQwMiw4Ny42MzQgODcuNjM0LDMxLjQwMiAxNTcuMDA3LDMxLjQwMiBDMjI2LjM3MSwzMS40MDIgMjgyLjYxMSw4Ny42MzQgMjgyLjYxMSwxNTcuMDA3IEMyODIuNjEyLDIyNi4zNzIgMjI2LjM3MiwyODIuNjEyIDE1Ny4wMDcsMjgyLjYxMiBaIE0yMDQuMTExLDE0MS4zNjggTDE2My40NzksMTQxLjUzMyBDMTU5LjEzOSwxNDEuNTUzIDE1Ny41NDQsMTM4LjYyMyAxNTkuOTA1LDEzNC45NzkgTDIwMy4zOTcsNjguMTA5IEMyMDguMTI2LDYwLjg0MSAyMDYuOTg0LDU5LjkyMiAyMDAuODYxLDY2LjA1MyBMMTA1LjMwNSwxNjEuNiBDOTkuMTcyLDE2Ny43MzIgMTAxLjIzMiwxNzIuNjc2IDEwOS45MDYsMTcyLjY0MSBMMTQyLjY3OSwxNzIuNTA4IEMxNTEuMzQ3LDE3Mi40NzIgMTU0LjU1MiwxNzguMzM1IDE0OS44MjQsMTg1LjYwNSBMMTA2LjMzNCwyNTIuNDc3IEMxMDMuOTcyLDI1Ni4xMTIgMTA0LjU0MiwyNTYuNTgxIDEwNy42MiwyNTMuNTI3IEwxNzUuOTE1LDE4NS43MTcgQzE3OC45ODgsMTgyLjY1OSAxODMuOTUsMTc3LjY4NiAxODYuOTgzLDE3NC41OTYgTDIwOC43ODgsMTUyLjQ4NSBDMjE0Ljg3NSwxNDYuMzE3IDIxMi43NzUsMTQxLjMzIDIwNC4xMTEsMTQxLjM2OCBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+") !important;
313
- background-size: 20px;
314
- background-repeat: no-repeat;
315
- background-position: 6px;
316
- padding-left: 35px !important;
317
- }
318
- .dashboard_page_ampforwp-welcome-page .plugin-card.drop-shadow.lifted,
319
- .ampforwp-pre-installtion-instructions{display: none;}
320
- </style>
321
- <?php } else { ?>
322
- <style>
323
- .ampforwp-post-installtion-instructions{ display: none; }
324
- </style>
325
- <?php }
326
- $current_screen = get_current_screen();
327
- if( $current_screen ->id === "dashboard_page_ampforwp-welcome-page" ) {?>
328
- <script>
329
- (function(){
330
- const statusContainer = document.getElementById('ampforwp-network-status');
331
- if(! navigator.onLine) {
332
- statusContainer.innerHTML = __("<h1 style='color:#E91E63'> You seems to have been Offline. Please connect to network to continue the installation.</h1>",'accelerated-mobile-pages');
333
- } else {
334
- if( statusContainer ) {
335
- statusContainer.innerHTML = "";
336
- }
337
- }
338
- })();
339
-
340
- </script>
341
- <?php } ?>
342
- <?php
343
- }
344
-
345
  add_action('admin_footer','ampforwp_add_welcome_styling');
346
  function ampforwp_add_welcome_styling(){
347
  $current = "";
1
+ <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ add_action( 'admin_init', 'ampforwp_welcome_screen_do_activation_redirect' );
8
  function ampforwp_welcome_screen_do_activation_redirect() {
9
  // Bail if no activation redirect
10
  if ( ! get_transient( 'ampforwp_welcome_screen_activation_redirect' ) ) {
20
  }
21
 
22
  // Redirect to welcome page
23
+ wp_safe_redirect( esc_url( add_query_arg( array( 'page' => 'ampforwp-welcome-page' ), admin_url( 'admin.php' ) ) ) );
24
+ exit();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  }
26
 
27
  add_filter('ampforwp_add_admin_subpages', 'ampforwp_add_welcome_pages');
28
  function ampforwp_add_welcome_pages($sections){
 
 
29
  $sections[] = array(
30
+ 'page_title'=> esc_html__('Welcome To AMPforWP plugin','accelerated-mobile-pages'),
31
+ 'menu_title'=>esc_html__('Welcome to AMP','accelerated-mobile-pages'),
32
  'page_permissions'=>'manage_options',
33
  'menu_slug' => 'ampforwp-welcome-page',
34
  'callback' => 'ampforwp_welcome_screen_content',
35
  'custom_amp_menu' => true
36
  );
 
37
  return $sections;
38
  }
39
 
40
  function ampforwp_welcome_screen_content() {
41
  ?>
42
  <div class="wrap">
 
 
43
  <div class="clear"></div>
44
 
45
  <div class="ampforwp-post-installtion-instructions">
46
 
47
+ <h1 class="amp_installed_heading"><?php echo esc_html__('AMP is now Installed!','accelerated-mobile-pages') ?></h1>
48
+ <div class="amp_installed_text"><p><?php echo esc_html__('Thank you so much for installing the AMPforWP plugin!','accelerated-mobile-pages') ?></p>
49
+ <p><?php echo esc_html__('Our team works really hard to deliver good user experience to you.','accelerated-mobile-pages') ?></p></div>
50
  <div class="getstarted_wrapper">
51
  <div class="amp_user_onboarding">
52
  <div class="amp_new_user amp_user_onboarding_choose">
53
  <div class="amp_user_avatar"></div>
54
+ <h3><?php echo esc_html__("I'm a New User!","accelerated-mobile-pages") ?></h3>
55
+ <p><?php echo esc_html__("We have recommend you to go through AMP installation wizard which helps setup the Basic AMP and get started immediatly.","accelerated-mobile-pages") ?></p>
56
+ <a href="<?php echo esc_url(wp_nonce_url(admin_url('plugins.php?page=ampforwptourinstaller&ampforwp_install=1'), '_wpnonce'));?>"><?php echo esc_html__("Run Installation Wizard","accelerated-mobile-pages") ?></a>
57
  </div>
58
  <div class="amp_expert_user amp_user_onboarding_choose">
59
  <div class="amp_user_avatar"></div>
60
+ <h3><?php echo esc_html__("I'm an Experienced User!","accelerated-mobile-pages") ?></h3>
61
+ <p><?php echo esc_html__("We have many settings in Options Panel to help you setup the AMP perfectly to according to your taste & needs.","accelerated-mobile-pages") ?></p>
62
+ <a href="<?php echo esc_url(admin_url('admin.php?tabid=opt-text-subsection&page=amp_options'));?>"><?php echo esc_html__("AMP Options Panel","accelerated-mobile-pages") ?></a>
63
  </div>
64
 
65
  <div class="clear"></div>
77
 
78
  <div class="getstarted_wrapper nh-b">
79
  <h1 style="color: #008606;font-weight: 300;margin-top: 35px;">
80
+ <i class="dashicons dashicons-editor-help" style="font-size: 34px;margin-right: 18px;margin-top: -1px;"></i><?php echo esc_html__('Need Help?','accelerated-mobile-pages') ?>
81
  </h1>
82
+ <div class="amp_installed_text"><p><?php echo esc_html__('We\'re bunch of passionate people that are dedicated towards helping our users. We will be happy to help you!','accelerated-mobile-pages') ?></p></div>
83
  <div class="getstarted_options">
84
+ <p><b><?php echo esc_html__("Getting Started","accelerated-mobile-pages") ?></b></p>
85
  <ul class="getstarted_ul">
86
+ <li><a href="https://ampforwp.com/tutorials/article-categories/installation-updating/" target="_blank"><?php echo esc_html__("Installation &amp; Setup","accelerated-mobile-pages") ?></a></li>
87
+ <li><a href="https://ampforwp.com/tutorials/article-categories/settings-options/" target="_blank"><?php echo esc_html__("Settings &amp; Options","accelerated-mobile-pages") ?></a></li>
88
+ <li><a href="https://ampforwp.com/tutorials/article-categories/setup-amp/" target="_blank"><?php echo esc_html__("Setup AMP","accelerated-mobile-pages") ?></a></li>
89
+ <li><a href="https://ampforwp.com/tutorials/article-categories/page-builder/" target="_blank"><?php echo esc_html__("Page Builder","accelerated-mobile-pages") ?></a></li>
90
  </ul>
91
  </div>
92
  <div class="getstarted_options">
93
+ <p><b><?php echo esc_html__("Useful Links","accelerated-mobile-pages") ?></b></p>
94
  <ul class="getstarted_ul">
95
+ <li><a href="https://ampforwp.com/tutorials/article-categories/extension/" target="_blank"><?php echo esc_html__("Extensions &amp; Themes Docs","accelerated-mobile-pages") ?></a></li>
96
+ <li><a href="https://ampforwp.com/tutorials/article-categories/extending/" target="_blank"><?php echo esc_html__("Developers Docs","accelerated-mobile-pages") ?></a></li>
97
+ <li><a href="https://ampforwp.com/amp-theme-framework/" target="_blank"><?php echo esc_html__("Create a Custom Theme for AMP","accelerated-mobile-pages") ?></a></li>
98
+ <li><a href="https://ampforwp.com/tutorials/article-categories/how-to/" target="_blank"><?php echo esc_html__("General How To's","accelerated-mobile-pages") ?></a></li>
99
  </ul>
100
  </div>
101
  <div class="clear"></div>
106
  </div> <?php
107
  }
108
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  add_action('admin_footer','ampforwp_add_welcome_styling');
110
  function ampforwp_add_welcome_styling(){
111
  $current = "";
install/assets/js/merlin.js CHANGED
@@ -221,21 +221,32 @@ jQuery(document).ready(function($) {
221
  e.preventDefault();
222
  var button = $(this);
223
  var id = button.parents('li').find('#process_custom_images');
224
- wp.media.editor.send.attachment = function(props, attachment) {
225
-
226
- var saveValues = {
227
- url: attachment.url,
228
- id: attachment.id,
229
- height: attachment.height,
230
- width: attachment.width,
231
- thumbnail: attachment.sizes.thumbnail.url,
232
- }
 
 
 
 
 
 
 
 
 
 
 
 
233
  id.val(JSON.stringify(saveValues));
234
- button.parents('li').find('img').remove();
235
- button.parents('li').append("<br><br><img src='"+attachment.url+"' width='100' height='100'>");
236
- };
237
- wp.media.editor.open(button);
238
- return false;
239
  });
240
  }
241
  }
221
  e.preventDefault();
222
  var button = $(this);
223
  var id = button.parents('li').find('#process_custom_images');
224
+
225
+ // Define image_frame as wp.media object
226
+ image_frame = wp.media({
227
+ title: 'Select Logo',
228
+ multiple : false,
229
+ library : {
230
+ type : 'image',
231
+ }
232
+ });
233
+ image_frame.open(button);
234
+ image_frame.on('close',function() {
235
+ // On close, get selections and save to the hidden input
236
+ // plus other AJAX stuff to refresh the image preview
237
+ var attachment = image_frame.state().get('selection').first().toJSON();
238
+ var saveValues = {
239
+ url: attachment.url,
240
+ id: attachment.id,
241
+ height: attachment.height,
242
+ width: attachment.width,
243
+ thumbnail: attachment.sizes.thumbnail.url,
244
+ }
245
  id.val(JSON.stringify(saveValues));
246
+ button.parents('li').find('img').remove();
247
+ button.parents('li').append("<br><br><img src='"+attachment.url+"' width='100' height='100'>");
248
+ });
249
+ return false;
 
250
  });
251
  }
252
  }
install/index.php CHANGED
@@ -1,5 +1,20 @@
1
  <?php
 
 
 
 
2
  /**
 
 
 
 
 
 
 
 
 
 
 
3
  * Merlin WP
4
  * Better WordPress Theme Onboarding
5
  *
@@ -16,7 +31,7 @@
16
  $redux_builder_amp = get_option('redux_builder_amp');
17
  $ampLogo="";
18
  if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-media']['url']!=""){
19
- $ampLogo = '<br/><br/><img src="'.$redux_builder_amp['opt-media']['url'].'" class="amp_install_logo_preview" />';
20
  }
21
 
22
  $ampforwp_install_config = array(
@@ -28,13 +43,13 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
28
  'dev_mode' => false,
29
  'steps' => array(
30
  1=>array(
31
- 'title'=>'Welcome',
32
  'fields'=>'',
33
- 'description'=>'This wizard will set up AMP on your website, install plugin, and import content. It is optional & should take only a few minutes.',
34
  ),
35
  2=>array(
36
- 'title'=>'Upload Logo',
37
- 'description'=>'Recommend logo size is: 190x36',
38
  'fields'=>'<li class="amp_install_center">
39
  <input type="hidden" value="" class="regular-text process_custom_images" id="process_custom_images" name="opt-media" value="">
40
 
@@ -43,8 +58,8 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
43
  </li>'
44
  ),
45
  3=>array(
46
- 'title'=>'Select Pages',
47
- 'description'=>'Where you would like to enable AMP.',
48
  'fields'=>'<li class="merlin__drawer--import-content__list-item status status--pending">
49
  <input type="checkbox" class="checkbox" name="amp-on-off-for-all-posts" id="amp-on-posts" '.($redux_builder_amp['amp-on-off-for-all-posts']? 'checked': '').'>
50
  <label for="amp-on-posts">
@@ -70,8 +85,8 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
70
  ',
71
  ),
72
  4=>array(
73
- 'title'=>'Setup Analytics',
74
- 'description'=>'Enter your Google Analytics Tracking code',
75
  'fields'=>'<li class="amp_install_center">
76
  <input type="hidden" name="amp-analytics-select-option" value="1">
77
  <input type="text" name="ga-feild" id="ga-feild" value="'.($redux_builder_amp['ga-feild']? $redux_builder_amp['ga-feild'] : '').'">
@@ -79,7 +94,7 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
79
  </li>',
80
  ),
81
  5=>array(
82
- 'title'=>'Select Design',
83
  'description'=>'',
84
  'fields'=>'<li class="amp_install_center"><select name="amp-design-selector" id="ampforwp-design-select">
85
  <option value="1" '.($redux_builder_amp['amp-design-selector']==1? 'selected' : '').'>Design One</option>
@@ -97,8 +112,8 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
97
  ',
98
  ),
99
  6=>array(
100
- 'title'=>'Enjoy',
101
- 'description'=>'Navigate to ',
102
  'fields'=>'',
103
  ),
104
  ),
@@ -127,20 +142,20 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
127
  }
128
 
129
  function ampforwp_instller_admin_init(){
130
- if(isset($_GET['ampforwp_install']) && $_GET['ampforwp_install']=='1' && is_admin()){
131
  ampforwp_steps_call();
132
  }
133
  }
134
 
135
  function ampforwp_steps_call(){
136
  global $ampforwp_install_config;
137
- if ( empty( $_GET['page'] ) || $ampforwp_install_config['installerpage'] !== $_GET['page'] ) {
138
  return;
139
  }
140
  if ( ob_get_length() ) {
141
  ob_end_clean();
142
  }
143
- $step = isset( $_GET['step'] ) ? sanitize_key( $_GET['step'] ) : $ampforwp_install_config['start_steps'] ;
144
  $title = $ampforwp_install_config['steps'][$step]['title'];
145
  $ampforwp_install_config['current_step']['step_id'] = $step;
146
 
@@ -148,31 +163,27 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
148
  // Use minified libraries if dev mode is turned on.
149
  $suffix = '';
150
  // Enqueue styles.
151
- wp_enqueue_style( 'ampforwp_install', AMPFORWP_PLUGIN_DIR_URI. $ampforwp_install_config['installer_dir']. '/assets/css/merlin' . $suffix . '.css' , array( 'wp-admin' ), '0.1');
152
  // Enqueue javascript.
153
- wp_enqueue_script( 'ampforwp_install', AMPFORWP_PLUGIN_DIR_URI. $ampforwp_install_config['installer_dir']. '/assets/js/merlin' . $suffix . '.js' , array( 'jquery-core' ), '0.1' );
154
 
155
  wp_localize_script( 'ampforwp_install', 'ampforwp_install_params', array(
156
- 'ajaxurl' => admin_url( 'admin-ajax.php' ),
157
  'wpnonce' => wp_create_nonce( 'ampforwp_install_nonce' ),
158
- 'pluginurl' => AMPFORWP_PLUGIN_DIR_URI,
159
  ) );
160
 
161
 
162
  ob_start();
163
  ampforwp_install_header(); ?>
164
  <div class="merlin__wrapper">
165
- <div class="amp_install_wizard">AMP Installation Wizard</div>
166
  <div class="merlin__content merlin__content--<?php echo esc_attr( strtolower( $title ) ); ?>">
167
 
168
  <?php
169
  // Content Handlers.
170
  $show_content = true;
171
 
172
- if ( ! empty( $_REQUEST['save_step'] ) && isset( $ampforwp_install_config['current_step']['steps'] ) ) {
173
- //ampforwp_save_steps_data();
174
- }
175
-
176
  if ( $show_content ) {
177
  ampforwp_show_steps_body();
178
  } ?>
@@ -181,7 +192,7 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
181
 
182
  </div>
183
 
184
- <?php echo sprintf( '<a class="return-to-dashboard" href="%s">%s</a>', esc_url( admin_url( 'admin.php?page=amp_options' ) ), esc_html( 'Return to dashboard' ) ); ?>
185
 
186
  </div>
187
 
@@ -216,14 +227,14 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
216
 
217
  <h1><?php echo $stepDetails['title']; ?></h1>
218
 
219
- <p><?php echo esc_html( 'This Installation Wizard helps you to setup the necessary options for AMP. It is optional & should take only a few minutes.' ); ?></p>
220
 
221
  </div>
222
 
223
  <footer class="merlin__content__footer">
224
- <a href="<?php echo esc_url( admin_url( 'admin.php?page=amp_options' ) ); ?>" class="merlin__button merlin__button--skip"><?php echo esc_html( 'Cancel' ); ?></a>
225
 
226
- <a href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--next merlin__button--proceed merlin__button--colorchange"><?php echo esc_html( 'Start' ); ?></a>
227
  <?php wp_nonce_field( 'ampforwp_install_nonce' ); ?>
228
  </footer>
229
  <?php
@@ -242,9 +253,9 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
242
  <circle class="icon--checkmark__circle" cx="26" cy="26" r="25" fill="none"/><path class="icon--checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
243
  </svg>
244
 
245
- <h1><?php echo $stepDetails['title']; ?></h1>
246
 
247
- <p><?php echo isset($stepDetails['description'])? $stepDetails['description'] : ''; ?></p>
248
 
249
  </div>
250
  <form action="" method="post">
@@ -262,10 +273,10 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
262
  <footer class="merlin__content__footer">
263
  <?php ampforwp_skip_button(); ?>
264
 
265
- <a id="skip" href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--skip merlin__button--proceed"><?php echo esc_html( 'Skip' ); ?></a>
266
 
267
  <a href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--next button-next" data-callback="save_logo">
268
- <span class="merlin__button--loading__text"><?php echo esc_html( 'Save' ); ?></span><?php echo ampforwp_loading_spinner(); ?>
269
  </a>
270
 
271
  <?php wp_nonce_field( 'ampforwp_install_nonce' ); ?>
@@ -286,9 +297,9 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
286
  <circle class="icon--checkmark__circle" cx="26" cy="26" r="25" fill="none"/><path class="icon--checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
287
  </svg>
288
 
289
- <h1><?php echo $stepDetails['title']; ?></h1>
290
 
291
- <p><?php echo isset($stepDetails['description'])? $stepDetails['description'] : ''; ?></p>
292
 
293
 
294
  </div>
@@ -305,10 +316,10 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
305
  <footer class="merlin__content__footer">
306
  <?php ampforwp_skip_button(); ?>
307
 
308
- <a id="skip" href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--skip merlin__button--proceed"><?php echo esc_html( 'Skip' ); ?></a>
309
 
310
  <a href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--next button-next" data-callback="save_logo">
311
- <span class="merlin__button--loading__text"><?php echo esc_html( 'Save' ); ?></span><?php echo ampforwp_loading_spinner(); ?>
312
  </a>
313
 
314
 
@@ -330,9 +341,9 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
330
  <circle class="icon--checkmark__circle" cx="26" cy="26" r="25" fill="none"/><path class="icon--checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
331
  </svg>
332
 
333
- <h1><?php echo $stepDetails['title']; ?></h1>
334
 
335
- <p><?php echo isset($stepDetails['description'])? $stepDetails['description'] : ''; ?></p>
336
  </div>
337
  <form action="" method="post">
338
 
@@ -348,10 +359,10 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
348
  <footer class="merlin__content__footer">
349
  <?php ampforwp_skip_button(); ?>
350
 
351
- <a id="skip" href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--skip merlin__button--proceed"><?php echo esc_html( 'Skip' ); ?></a>
352
 
353
  <a href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--next button-next" data-callback="save_logo">
354
- <span class="merlin__button--loading__text"><?php echo esc_html( 'Save' ); ?></span><?php echo ampforwp_loading_spinner(); ?>
355
  </a>
356
 
357
 
@@ -373,9 +384,9 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
373
  <circle class="icon--checkmark__circle" cx="26" cy="26" r="25" fill="none"/><path class="icon--checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
374
  </svg>
375
 
376
- <h1><?php echo $stepDetails['title']; ?></h1>
377
 
378
- <p><?php echo isset($stepDetails['description'])? $stepDetails['description'] : ''; ?></p>
379
 
380
 
381
 
@@ -392,10 +403,10 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
392
  <footer class="merlin__content__footer">
393
  <?php ampforwp_skip_button(); ?>
394
 
395
- <a id="skip" href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--skip merlin__button--proceed"><?php echo esc_html( 'Skip' ); ?></a>
396
 
397
  <a href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--next button-next" data-callback="save_logo">
398
- <span class="merlin__button--loading__text"><?php echo esc_html( 'Save' ); ?></span><?php echo ampforwp_loading_spinner(); ?>
399
  </a>
400
 
401
  <?php wp_nonce_field( 'ampforwp_install_nonce' ); ?>
@@ -413,6 +424,14 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
413
 
414
 
415
  function ampforwp_save_steps_data(){
 
 
 
 
 
 
 
 
416
  $redux_builder_amp = get_option('redux_builder_amp');
417
  if($redux_builder_amp!=''){
418
  foreach($_POST as $postKey=>$postValue){
@@ -437,7 +456,7 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
437
 
438
  function ampforwp_skip_button(){
439
  ?>
440
- <a href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--skip"><?php echo esc_html( 'Skip' ); ?></a>
441
  <?php
442
  }
443
  function ampforwp_finish_page() {
@@ -462,7 +481,7 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
462
 
463
  <div class="amp_branding"></div>
464
 
465
- <h1><?php echo esc_html( 'Setup Done. Have fun!' ); ?></h1>
466
 
467
  <p><?php echo wp_kses( 'Basic Setup has been done. Navigate to AMP options panel to access all the options.','ampforwp_install' ); ?></p>
468
 
@@ -470,7 +489,7 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
470
 
471
  <footer class="merlin__content__footer merlin__content__footer--fullwidth">
472
 
473
- <a href="<?php echo esc_url( admin_url( 'admin.php?page=amp_options' ) ); ?>" class="merlin__button merlin__button--blue merlin__button--fullwidth merlin__button--popin"><?php echo esc_html( 'Let\'s Go' ); ?></a>
474
 
475
 
476
  <ul class="merlin__drawer merlin__drawer--extras">
@@ -502,7 +521,7 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
502
 
503
  function ampforwp_loading_spinner(){
504
  global $ampforwp_install_config;
505
- $spinner = AMPFORWP_PLUGIN_DIR. $ampforwp_install_config['installer_dir']. '/assets/images/spinner.php';
506
 
507
  // Retrieve the spinner.
508
  get_template_part( $spinner );
@@ -511,7 +530,7 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
511
  function ampforwp_svg_sprite() {
512
  global $ampforwp_install_config;
513
  // Define SVG sprite file.
514
- $svg = AMPFORWP_PLUGIN_DIR. $ampforwp_install_config['installer_dir'] . '/assets/images/sprite.svg' ;
515
 
516
  // If it exists, include it.
517
  if ( file_exists( $svg ) ) {
@@ -593,7 +612,7 @@ if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-medi
593
  }
594
 
595
  // Begin SVG markup.
596
- $svg = '<svg class="icon icon--' . esc_attr( $args['icon'] ) . '"' . $aria_hidden . $aria_labelledby . ' role="img">';
597
 
598
  // If there is a title, display it.
599
  if ( $args['title'] ) {
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  /**
7
+ * Merlin WP
8
+ * Version 1.2.2
9
+ *
10
+ * Dual licensed under the MIT and GPL licenses:
11
+ * copyright Copyright (c) 2017, Merlin WP of Inventionn LLC
12
+ * http://www.opensource.org/licenses/mit-license.php
13
+ * Licensed GPLv3 for open source use
14
+ *
15
+ * Thanks to Merlin WP Team, Richard Tabor, from ThemeBeans.com for some excellent contributions!
16
+ *
17
+ *
18
  * Merlin WP
19
  * Better WordPress Theme Onboarding
20
  *
31
  $redux_builder_amp = get_option('redux_builder_amp');
32
  $ampLogo="";
33
  if(isset($redux_builder_amp['opt-media']['url']) && $redux_builder_amp['opt-media']['url']!=""){
34
+ $ampLogo = '<br/><br/><img src="'.esc_url($redux_builder_amp['opt-media']['url']).'" class="amp_install_logo_preview" />';
35
  }
36
 
37
  $ampforwp_install_config = array(
43
  'dev_mode' => false,
44
  'steps' => array(
45
  1=>array(
46
+ 'title'=> esc_html__('Welcome','accelerated-mobile-pages'),
47
  'fields'=>'',
48
+ 'description'=>esc_html__('Welcome','This wizard will set up AMP on your website, install plugin, and import content. It is optional & should take only a few minutes.','accelerated-mobile-pages'),
49
  ),
50
  2=>array(
51
+ 'title'=>esc_html__('Upload Logo','accelerated-mobile-pages'),
52
+ 'description'=>esc_html__('Recommend logo size is: 190x36','accelerated-mobile-pages'),
53
  'fields'=>'<li class="amp_install_center">
54
  <input type="hidden" value="" class="regular-text process_custom_images" id="process_custom_images" name="opt-media" value="">
55
 
58
  </li>'
59
  ),
60
  3=>array(
61
+ 'title'=>esc_html__('Select Pages','accelerated-mobile-pages'),
62
+ 'description'=>esc_html__('Where you would like to enable AMP.','accelerated-mobile-pages'),
63
  'fields'=>'<li class="merlin__drawer--import-content__list-item status status--pending">
64
  <input type="checkbox" class="checkbox" name="amp-on-off-for-all-posts" id="amp-on-posts" '.($redux_builder_amp['amp-on-off-for-all-posts']? 'checked': '').'>
65
  <label for="amp-on-posts">
85
  ',
86
  ),
87
  4=>array(
88
+ 'title'=>esc_html__('Setup Analytics','accelerated-mobile-pages'),
89
+ 'description'=>esc_html__('Enter your Google Analytics Tracking code','accelerated-mobile-pages'),
90
  'fields'=>'<li class="amp_install_center">
91
  <input type="hidden" name="amp-analytics-select-option" value="1">
92
  <input type="text" name="ga-feild" id="ga-feild" value="'.($redux_builder_amp['ga-feild']? $redux_builder_amp['ga-feild'] : '').'">
94
  </li>',
95
  ),
96
  5=>array(
97
+ 'title'=>esc_html__('Select Design','accelerated-mobile-pages'),
98
  'description'=>'',
99
  'fields'=>'<li class="amp_install_center"><select name="amp-design-selector" id="ampforwp-design-select">
100
  <option value="1" '.($redux_builder_amp['amp-design-selector']==1? 'selected' : '').'>Design One</option>
112
  ',
113
  ),
114
  6=>array(
115
+ 'title'=>esc_html__('Enjoy','accelerated-mobile-pages'),
116
+ 'description'=>esc_html__('Navigate to ','accelerated-mobile-pages'),
117
  'fields'=>'',
118
  ),
119
  ),
142
  }
143
 
144
  function ampforwp_instller_admin_init(){
145
+ if(isset($_GET['ampforwp_install'], $_GET['_wpnonce']) && wp_verify_nonce($_GET['_wpnonce'], '_wpnonce') && $_GET['ampforwp_install']=='1' && is_admin()){
146
  ampforwp_steps_call();
147
  }
148
  }
149
 
150
  function ampforwp_steps_call(){
151
  global $ampforwp_install_config;
152
+ if ( !wp_verify_nonce($_GET['_wpnonce'], '_wpnonce') || empty( $_GET['page'] ) || $ampforwp_install_config['installerpage'] !== $_GET['page'] ) {
153
  return;
154
  }
155
  if ( ob_get_length() ) {
156
  ob_end_clean();
157
  }
158
+ $step = isset( $_GET['step'] ) ? sanitize_text_field( wp_unslash(sanitize_key( $_GET['step'] ) ) ) : $ampforwp_install_config['start_steps'] ;
159
  $title = $ampforwp_install_config['steps'][$step]['title'];
160
  $ampforwp_install_config['current_step']['step_id'] = $step;
161
 
163
  // Use minified libraries if dev mode is turned on.
164
  $suffix = '';
165
  // Enqueue styles.
166
+ wp_enqueue_style( 'ampforwp_install', esc_url(AMPFORWP_PLUGIN_DIR_URI. $ampforwp_install_config['installer_dir']. '/assets/css/merlin' . $suffix . '.css') , array( 'wp-admin' ), '0.1');
167
  // Enqueue javascript.
168
+ wp_enqueue_script( 'ampforwp_install', esc_url(AMPFORWP_PLUGIN_DIR_URI. $ampforwp_install_config['installer_dir']. '/assets/js/merlin' . $suffix . '.js') , array( 'jquery-core' ), '0.1' );
169
 
170
  wp_localize_script( 'ampforwp_install', 'ampforwp_install_params', array(
171
+ 'ajaxurl' => esc_url(admin_url( 'admin-ajax.php' )),
172
  'wpnonce' => wp_create_nonce( 'ampforwp_install_nonce' ),
173
+ 'pluginurl' => esc_url(AMPFORWP_PLUGIN_DIR_URI),
174
  ) );
175
 
176
 
177
  ob_start();
178
  ampforwp_install_header(); ?>
179
  <div class="merlin__wrapper">
180
+ <div class="amp_install_wizard"><?php echo esc_html__('AMP Installation Wizard','accelerated-mobile-pages'); ?></div>
181
  <div class="merlin__content merlin__content--<?php echo esc_attr( strtolower( $title ) ); ?>">
182
 
183
  <?php
184
  // Content Handlers.
185
  $show_content = true;
186
 
 
 
 
 
187
  if ( $show_content ) {
188
  ampforwp_show_steps_body();
189
  } ?>
192
 
193
  </div>
194
 
195
+ <?php echo sprintf( '<a class="return-to-dashboard" href="%s">%s</a>', esc_url( admin_url( 'admin.php?page=amp_options' ) ), esc_html__( 'Return to dashboard','accelerated-mobile-pages' ) ); ?>
196
 
197
  </div>
198
 
227
 
228
  <h1><?php echo $stepDetails['title']; ?></h1>
229
 
230
+ <p><?php echo esc_html__( 'This Installation Wizard helps you to setup the necessary options for AMP. It is optional & should take only a few minutes.' ,'accelerated-mobile-pages'); ?></p>
231
 
232
  </div>
233
 
234
  <footer class="merlin__content__footer">
235
+ <a href="<?php echo esc_url( admin_url( 'admin.php?page=amp_options' ) ); ?>" class="merlin__button merlin__button--skip"><?php echo esc_html__( 'Cancel','accelerated-mobile-pages' ); ?></a>
236
 
237
+ <a href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--next merlin__button--proceed merlin__button--colorchange"><?php echo esc_html__( 'Start','accelerated-mobile-pages' ); ?></a>
238
  <?php wp_nonce_field( 'ampforwp_install_nonce' ); ?>
239
  </footer>
240
  <?php
253
  <circle class="icon--checkmark__circle" cx="26" cy="26" r="25" fill="none"/><path class="icon--checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
254
  </svg>
255
 
256
+ <h1><?php echo esc_html__($stepDetails['title'],'accelerated-mobile-pages'); ?></h1>
257
 
258
+ <p><?php echo isset($stepDetails['description'])? esc_html__($stepDetails['description'],'accelerated-mobile-pages') : ''; ?></p>
259
 
260
  </div>
261
  <form action="" method="post">
273
  <footer class="merlin__content__footer">
274
  <?php ampforwp_skip_button(); ?>
275
 
276
+ <a id="skip" href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--skip merlin__button--proceed"><?php echo esc_html__( 'Skip','accelerated-mobile-pages' ); ?></a>
277
 
278
  <a href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--next button-next" data-callback="save_logo">
279
+ <span class="merlin__button--loading__text"><?php echo esc_html__( 'Save' ,'accelerated-mobile-pages'); ?></span><?php echo ampforwp_loading_spinner(); ?>
280
  </a>
281
 
282
  <?php wp_nonce_field( 'ampforwp_install_nonce' ); ?>
297
  <circle class="icon--checkmark__circle" cx="26" cy="26" r="25" fill="none"/><path class="icon--checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
298
  </svg>
299
 
300
+ <h1><?php echo esc_html__($stepDetails['title'],'accelerated-mobile-pages'); ?></h1>
301
 
302
+ <p><?php echo isset($stepDetails['description'])? esc_html__($stepDetails['description'],'accelerated-mobile-pages') : ''; ?></p>
303
 
304
 
305
  </div>
316
  <footer class="merlin__content__footer">
317
  <?php ampforwp_skip_button(); ?>
318
 
319
+ <a id="skip" href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--skip merlin__button--proceed"><?php echo esc_html__( 'Skip','accelerated-mobile-pages' ); ?></a>
320
 
321
  <a href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--next button-next" data-callback="save_logo">
322
+ <span class="merlin__button--loading__text"><?php echo esc_html__( 'Save','accelerated-mobile-pages' ); ?></span><?php echo ampforwp_loading_spinner(); ?>
323
  </a>
324
 
325
 
341
  <circle class="icon--checkmark__circle" cx="26" cy="26" r="25" fill="none"/><path class="icon--checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
342
  </svg>
343
 
344
+ <h1><?php echo esc_html__($stepDetails['title'],'accelerated-mobile-pages'); ?></h1>
345
 
346
+ <p><?php echo isset($stepDetails['description'])? esc_html__($stepDetails['description'],'accelerated-mobile-pages') : ''; ?></p>
347
  </div>
348
  <form action="" method="post">
349
 
359
  <footer class="merlin__content__footer">
360
  <?php ampforwp_skip_button(); ?>
361
 
362
+ <a id="skip" href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--skip merlin__button--proceed"><?php echo esc_html__( 'Skip','accelerated-mobile-pages' ); ?></a>
363
 
364
  <a href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--next button-next" data-callback="save_logo">
365
+ <span class="merlin__button--loading__text"><?php echo esc_html__( 'Save','accelerated-mobile-pages' ); ?></span><?php echo ampforwp_loading_spinner(); ?>
366
  </a>
367
 
368
 
384
  <circle class="icon--checkmark__circle" cx="26" cy="26" r="25" fill="none"/><path class="icon--checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
385
  </svg>
386
 
387
+ <h1><?php echo esc_html__($stepDetails['title'],'accelerated-mobile-pages'); ?></h1>
388
 
389
+ <p><?php echo isset($stepDetails['description'])? esc_html__($stepDetails['description'],'accelerated-mobile-pages') : ''; ?></p>
390
 
391
 
392
 
403
  <footer class="merlin__content__footer">
404
  <?php ampforwp_skip_button(); ?>
405
 
406
+ <a id="skip" href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--skip merlin__button--proceed"><?php echo esc_html__( 'Skip','accelerated-mobile-pages' ); ?></a>
407
 
408
  <a href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--next button-next" data-callback="save_logo">
409
+ <span class="merlin__button--loading__text"><?php echo esc_html__( 'Save','accelerated-mobile-pages' ); ?></span><?php echo ampforwp_loading_spinner(); ?>
410
  </a>
411
 
412
  <?php wp_nonce_field( 'ampforwp_install_nonce' ); ?>
424
 
425
 
426
  function ampforwp_save_steps_data(){
427
+ if(!wp_verify_nonce( $_REQUEST['wpnonce'], 'ampforwp_install_nonce' ) ) {
428
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
429
+ die;
430
+ }
431
+ // Exit if the user does not have proper permissions
432
+ if(! current_user_can( 'manage_options' ) ) {
433
+ return ;
434
+ }
435
  $redux_builder_amp = get_option('redux_builder_amp');
436
  if($redux_builder_amp!=''){
437
  foreach($_POST as $postKey=>$postValue){
456
 
457
  function ampforwp_skip_button(){
458
  ?>
459
+ <a href="<?php echo esc_url( ampforwp_step_next_link() ); ?>" class="merlin__button merlin__button--skip"><?php echo esc_html__( 'Skip','accelerated-mobile-pages' ); ?></a>
460
  <?php
461
  }
462
  function ampforwp_finish_page() {
481
 
482
  <div class="amp_branding"></div>
483
 
484
+ <h1><?php echo esc_html__( 'Setup Done. Have fun!','accelerated-mobile-pages' ); ?></h1>
485
 
486
  <p><?php echo wp_kses( 'Basic Setup has been done. Navigate to AMP options panel to access all the options.','ampforwp_install' ); ?></p>
487
 
489
 
490
  <footer class="merlin__content__footer merlin__content__footer--fullwidth">
491
 
492
+ <a href="<?php echo esc_url( admin_url( 'admin.php?page=amp_options' ) ); ?>" class="merlin__button merlin__button--blue merlin__button--fullwidth merlin__button--popin"><?php echo esc_html__( 'Let\'s Go','accelerated-mobile-pages' ); ?></a>
493
 
494
 
495
  <ul class="merlin__drawer merlin__drawer--extras">
521
 
522
  function ampforwp_loading_spinner(){
523
  global $ampforwp_install_config;
524
+ $spinner = esc_url(AMPFORWP_PLUGIN_DIR. $ampforwp_install_config['installer_dir']. '/assets/images/spinner.php');
525
 
526
  // Retrieve the spinner.
527
  get_template_part( $spinner );
530
  function ampforwp_svg_sprite() {
531
  global $ampforwp_install_config;
532
  // Define SVG sprite file.
533
+ $svg = esc_url(AMPFORWP_PLUGIN_DIR. $ampforwp_install_config['installer_dir'] . '/assets/images/sprite.svg') ;
534
 
535
  // If it exists, include it.
536
  if ( file_exists( $svg ) ) {
612
  }
613
 
614
  // Begin SVG markup.
615
+ $svg = '<svg class="icon icon--' . esc_attr( $args['icon'] ) . '"' . esc_attr($aria_hidden) . esc_attr($aria_labelledby) . ' role="img">';
616
 
617
  // If there is a title, display it.
618
  if ( $args['title'] ) {
pagebuilder/amp-page-builder.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  if ( ! defined( 'ABSPATH' ) ) {
3
- echo "Silence is golden";
4
  }
5
 
6
  // Identifies the current plugin version.
@@ -21,23 +21,26 @@ function ampforwp_pagebuilder_content_meta_register($post_type){
21
  $user_level = true;
22
  }
23
 
24
- if ( $user_level ) {
25
  // Page builder for posts
26
  if( $redux_builder_amp['amp-on-off-for-all-posts'] && $post_type == 'post' ) {
27
- add_meta_box( 'pagebilder_content', __( 'AMP Page Builder', 'amp-page-builder' ), 'amp_content_pagebuilder_title_callback', 'post' , 'normal', 'default' );
28
  }
29
  // Page builder for pages
30
  if ( $redux_builder_amp['amp-on-off-for-all-pages'] && $post_type == 'page' ) {
31
- add_meta_box( 'pagebilder_content', __( 'AMP Page Builder', 'amp-page-builder' ), 'amp_content_pagebuilder_title_callback', 'page' , 'normal', 'default' );
32
  }
33
  if( (isset($redux_builder_amp['ampforwp-custom-type']) && is_array($redux_builder_amp['ampforwp-custom-type'] ) ) && in_array($post_type, $redux_builder_amp['ampforwp-custom-type']) ){
34
- add_meta_box( 'pagebilder_content', __( 'AMP Page Builder', 'amp-page-builder' ), 'amp_content_pagebuilder_title_callback', $post_type , 'normal', 'default' );
35
  }
36
 
37
  }
38
  }
39
 
40
  function amp_content_pagebuilder_title_callback( $post ){
 
 
 
41
  global $post;
42
  $amp_current_post_id = $post->ID;
43
  $content = get_post_meta ( $amp_current_post_id, 'ampforwp_custom_content_editor', true );
@@ -49,12 +52,12 @@ function amp_content_pagebuilder_title_callback( $post ){
49
  update_post_meta($amp_current_post_id, 'use_ampforwp_page_builder','yes');
50
  }
51
  //Disable page builder
52
- if(isset($_GET['ramppb']) && $_GET['ramppb']=='1'){
53
  delete_post_meta($amp_current_post_id, 'use_ampforwp_page_builder','yes');
54
  delete_post_meta($amp_current_post_id, 'ampforwp_page_builder_enable','yes');
55
  }
56
  //Enable page builder
57
- if(isset($_GET['use_amp_pagebuilder']) && $_GET['use_amp_pagebuilder']=='1'){
58
  update_post_meta($amp_current_post_id, 'use_ampforwp_page_builder','yes');
59
  }
60
 
@@ -74,7 +77,7 @@ function call_page_builder(){
74
  $postId = $post->ID;
75
  }
76
  if(isset($_GET['post_id'])){
77
- $postId = $_GET['post_id'];
78
  }
79
  add_thickbox();
80
 
@@ -88,7 +91,6 @@ function call_page_builder(){
88
  $totalRows = 1;
89
  $totalmodules = 1;
90
  if(!empty($previousData)){
91
- //echo ' sdcds '.json_encode($previousData);die;
92
  $jsonData = json_decode($previousData,true);
93
  if(count($jsonData['rows'])>0){
94
  $totalRows = $jsonData['totalrows'];
@@ -135,10 +137,10 @@ function call_page_builder(){
135
  //'.add_query_arg('use_amp_pagebuilder','1',$url).'
136
  ?>
137
  <div id="ampForWpPageBuilder_container">
138
- <div id="start_amp_pb_post" class="start_amp_pb" data-postId="<?php echo get_the_ID() ?>" v-if="startPagebuilder==0" @click="amppb_startFunction($event)">Start the AMP Page Builder</div>
139
  <div class="enable_ampforwp_page_builder" v-if="startPagebuilder==1">
140
- <label><input type="checkbox" name="ampforwp_page_builder_enable" value="yes" v-model="checkedPageBuilder">Use Builder</label>
141
- <label @click="showModal = true;">Pre-built AMP Layouts</label>
142
  </div>
143
  <div id="amp-page-builder" v-if="startPagebuilder==1">
144
  <?php wp_nonce_field( "amppb_nonce_action", "amppb_nonce" ) ?>
@@ -147,7 +149,7 @@ function call_page_builder(){
147
  <div id="sorted_rows" class="amppb-rows drop" >
148
  <drop class="drop" :class="{'row-dropping':rowOverDrop}" @drop="handleDrop" @dragover="rowOverDrop = true"
149
  @dragleave="rowOverDrop = false">
150
- <p class="dummy amppb-rows-message" v-if="mainContent.rows && mainContent.rows.length==0">Start by dragging a Column and then a Module.</p>
151
  <draggable :element="'div'" class="dragrow"
152
  v-model="mainContent.rows"
153
  :options="{
@@ -165,7 +167,7 @@ function call_page_builder(){
165
  <input type="hidden" name="column-data" value="">
166
  <div class="amppb-row-title">
167
  <span class="amppb-handle dashicons dashicons-move"></span>
168
- <span class="amppb-row-title-text">1 Column</span>
169
  <span @click="reomve_row(key)" data-confirm="Delete Row?" class="amppb-remove dashicons dashicons-trash"></span>
170
  <span @click="showRowSettingPopUp($event)" class="rowBoxContainer" title="Row settings column 1" :data-popupContent='JSON.stringify(<?php echo json_encode($backendRowSetting); ?>)'
171
  :data-container_id="row.id"
@@ -205,7 +207,7 @@ function call_page_builder(){
205
  <input type="hidden" name="column-data" value="">
206
  <div class="amppb-row-title">
207
  <span class="amppb-handle dashicons dashicons-move"></span>
208
- <span class="amppb-row-title-text">2 Columns</span>
209
  <span @click="reomve_row(key)" data-confirm="Delete Row?" class="amppb-remove amppb-item-remove dashicons dashicons-trash"></span>
210
  <span href="#" class="rowBoxContainer" title="Row settings column 2" @click="showRowSettingPopUp($event)" :data-popupContent='JSON.stringify(<?php echo json_encode($backendRowSetting); ?>)'
211
  :data-container_id="row.id"
@@ -353,7 +355,7 @@ function call_page_builder(){
353
  you can use custom content here to overwrite
354
  default content
355
  -->
356
- <h3 slot="header">custom header</h3>
357
  </amp-pagebuilder-modal>
358
  <amp-pagebuilder-module-modal v-if="showmoduleModal" @close="showmoduleModal = false">
359
  <!--
@@ -378,8 +380,8 @@ function create_posttype_amppb_layout(){
378
  register_post_type( 'amppb_layout',
379
  array(
380
  'labels' => array(
381
- 'name' => __( 'AMP Layouts' ),
382
- 'singular_name' => __( 'AMP Layout' )
383
  ),
384
  /*'public' => true,
385
  'has_archive' => false,*/
1
  <?php
2
  if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
  }
5
 
6
  // Identifies the current plugin version.
21
  $user_level = true;
22
  }
23
 
24
+ if ( $user_level && ( current_user_can('edit_posts') || current_user_can('edit_pages') ) ) {
25
  // Page builder for posts
26
  if( $redux_builder_amp['amp-on-off-for-all-posts'] && $post_type == 'post' ) {
27
+ add_meta_box( 'pagebilder_content', esc_html__( 'AMP Page Builder', 'accelerated-mobile-pages' ), 'amp_content_pagebuilder_title_callback', 'post' , 'normal', 'default' );
28
  }
29
  // Page builder for pages
30
  if ( $redux_builder_amp['amp-on-off-for-all-pages'] && $post_type == 'page' ) {
31
+ add_meta_box( 'pagebilder_content', esc_html__( 'AMP Page Builder', 'accelerated-mobile-pages' ), 'amp_content_pagebuilder_title_callback', 'page' , 'normal', 'default' );
32
  }
33
  if( (isset($redux_builder_amp['ampforwp-custom-type']) && is_array($redux_builder_amp['ampforwp-custom-type'] ) ) && in_array($post_type, $redux_builder_amp['ampforwp-custom-type']) ){
34
+ add_meta_box( 'pagebilder_content', esc_html__( 'AMP Page Builder', 'accelerated-mobile-pages' ), 'amp_content_pagebuilder_title_callback', $post_type , 'normal', 'default' );
35
  }
36
 
37
  }
38
  }
39
 
40
  function amp_content_pagebuilder_title_callback( $post ){
41
+ if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) {
42
+ return ;
43
+ }
44
  global $post;
45
  $amp_current_post_id = $post->ID;
46
  $content = get_post_meta ( $amp_current_post_id, 'ampforwp_custom_content_editor', true );
52
  update_post_meta($amp_current_post_id, 'use_ampforwp_page_builder','yes');
53
  }
54
  //Disable page builder
55
+ if(isset($_GET['ramppb']) && sanitize_text_field( wp_unslash($_GET['ramppb']))=='1'){
56
  delete_post_meta($amp_current_post_id, 'use_ampforwp_page_builder','yes');
57
  delete_post_meta($amp_current_post_id, 'ampforwp_page_builder_enable','yes');
58
  }
59
  //Enable page builder
60
+ if(isset($_GET['use_amp_pagebuilder']) && sanitize_text_field( wp_unslash($_GET['use_amp_pagebuilder']))=='1'){
61
  update_post_meta($amp_current_post_id, 'use_ampforwp_page_builder','yes');
62
  }
63
 
77
  $postId = $post->ID;
78
  }
79
  if(isset($_GET['post_id'])){
80
+ $postId = sanitize_text_field( wp_unslash($_GET['post_id']));
81
  }
82
  add_thickbox();
83
 
91
  $totalRows = 1;
92
  $totalmodules = 1;
93
  if(!empty($previousData)){
 
94
  $jsonData = json_decode($previousData,true);
95
  if(count($jsonData['rows'])>0){
96
  $totalRows = $jsonData['totalrows'];
137
  //'.add_query_arg('use_amp_pagebuilder','1',$url).'
138
  ?>
139
  <div id="ampForWpPageBuilder_container">
140
+ <div id="start_amp_pb_post" class="start_amp_pb" data-postId="<?php echo get_the_ID() ?>" v-if="startPagebuilder==0" @click="amppb_startFunction($event)"><?php echo esc_html__('Start the AMP Page Builder','accelerated-mobile-pages'); ?></div>
141
  <div class="enable_ampforwp_page_builder" v-if="startPagebuilder==1">
142
+ <label><input type="checkbox" name="ampforwp_page_builder_enable" value="yes" v-model="checkedPageBuilder"><?php echo esc_html__('Use Builder','accelerated-mobile-pages'); ?></label>
143
+ <label @click="showModal = true;"><?php echo esc_html__('Pre-built AMP Layouts','accelerated-mobile-pages'); ?></label>
144
  </div>
145
  <div id="amp-page-builder" v-if="startPagebuilder==1">
146
  <?php wp_nonce_field( "amppb_nonce_action", "amppb_nonce" ) ?>
149
  <div id="sorted_rows" class="amppb-rows drop" >
150
  <drop class="drop" :class="{'row-dropping':rowOverDrop}" @drop="handleDrop" @dragover="rowOverDrop = true"
151
  @dragleave="rowOverDrop = false">
152
+ <p class="dummy amppb-rows-message" v-if="mainContent.rows && mainContent.rows.length==0"><?php echo esc_html__('Start by dragging a Column and then a Module','accelerated-mobile-pages'); ?>.</p>
153
  <draggable :element="'div'" class="dragrow"
154
  v-model="mainContent.rows"
155
  :options="{
167
  <input type="hidden" name="column-data" value="">
168
  <div class="amppb-row-title">
169
  <span class="amppb-handle dashicons dashicons-move"></span>
170
+ <span class="amppb-row-title-text">1 <?php echo esc_html__('Column','accelerated-mobile-pages'); ?></span>
171
  <span @click="reomve_row(key)" data-confirm="Delete Row?" class="amppb-remove dashicons dashicons-trash"></span>
172
  <span @click="showRowSettingPopUp($event)" class="rowBoxContainer" title="Row settings column 1" :data-popupContent='JSON.stringify(<?php echo json_encode($backendRowSetting); ?>)'
173
  :data-container_id="row.id"
207
  <input type="hidden" name="column-data" value="">
208
  <div class="amppb-row-title">
209
  <span class="amppb-handle dashicons dashicons-move"></span>
210
+ <span class="amppb-row-title-text">2 <?php echo esc_html__('Columns','accelerated-mobile-pages'); ?></span>
211
  <span @click="reomve_row(key)" data-confirm="Delete Row?" class="amppb-remove amppb-item-remove dashicons dashicons-trash"></span>
212
  <span href="#" class="rowBoxContainer" title="Row settings column 2" @click="showRowSettingPopUp($event)" :data-popupContent='JSON.stringify(<?php echo json_encode($backendRowSetting); ?>)'
213
  :data-container_id="row.id"
355
  you can use custom content here to overwrite
356
  default content
357
  -->
358
+ <h3 slot="header"><?php echo esc_html__('custom header','accelerated-mobile-pages'); ?></h3>
359
  </amp-pagebuilder-modal>
360
  <amp-pagebuilder-module-modal v-if="showmoduleModal" @close="showmoduleModal = false">
361
  <!--
380
  register_post_type( 'amppb_layout',
381
  array(
382
  'labels' => array(
383
+ 'name' => esc_html__( 'AMP Layouts' ),
384
+ 'singular_name' => esc_html__( 'AMP Layout' )
385
  ),
386
  /*'public' => true,
387
  'has_archive' => false,*/
pagebuilder/components/fieldsTemplate.php CHANGED
@@ -1,4 +1,6 @@
1
- <script type="text/x-template" id="fields-data-template">
 
 
2
  <div class="amp-form-control" :id="field.name" data-type="text" v-if="field.type=='text' && (field.tab==defaulttab || repeater==1)" :data-require="JSON.stringify(field.required)" v-show="fieldShowHideCheck(field)">
3
 
4
  <div class="form-label">{{field.label}}</div>
1
+ <?php // Exit if accessed directly.
2
+ if ( ! defined( 'ABSPATH' ) ) exit; ?>
3
+ <script type="text/x-template" id="fields-data-template">
4
  <div class="amp-form-control" :id="field.name" data-type="text" v-if="field.type=='text' && (field.tab==defaulttab || repeater==1)" :data-require="JSON.stringify(field.required)" v-show="fieldShowHideCheck(field)">
5
 
6
  <div class="form-label">{{field.label}}</div>
pagebuilder/components/modulePopupTemplate.php CHANGED
@@ -1,3 +1,5 @@
 
 
1
  <!-- template for the modal component -->
2
  <script type="x/template" id="amp-pagebuilder-module-modal-template">
3
  <transition name="amp-pagebuilder-module-modal">
1
+ <?php // Exit if accessed directly.
2
+ if ( ! defined( 'ABSPATH' ) ) exit; ?>
3
  <!-- template for the modal component -->
4
  <script type="x/template" id="amp-pagebuilder-module-modal-template">
5
  <transition name="amp-pagebuilder-module-modal">
pagebuilder/components/modulesHtmlTemplate.php CHANGED
@@ -1,4 +1,5 @@
1
-
 
2
  <script type="text/x-template" id="module-data-template">
3
  <?php $i=0;
4
  foreach ($moduleTemplate as $key => $module) {
@@ -28,17 +29,17 @@
28
  :data-module_id="cell.cell_id"
29
  >
30
 
31
- <span class="module_label">'.$module['label'].'
32
  <em v-if="cell.cell_identity_name"> {{cell.cell_identity_name}} </em>
33
  </span>
34
  <span class="amppb-setting-right">
35
- <label @click="duplicateModule($event)" class="link amppb-module-copy" title="'.$module['label'].'"
36
  :data-module_id="cell.cell_id"
37
  :data-container_id="cell.container_id"
38
  >
39
  <span class=" dashicons dashicons-admin-page"></span>
40
  </label>
41
- <label @click="showModulePopUp($event)" class="link" title="'.$module['label'].'" data-popupContent=\''.json_encode($module).'\'
42
  :data-module_id="cell.cell_id"
43
  :data-container_id="cell.container_id"
44
  :data-cell_identity_name = cell.cell_identity_name
1
+ <?php // Exit if accessed directly.
2
+ if ( ! defined( 'ABSPATH' ) ) exit; ?>
3
  <script type="text/x-template" id="module-data-template">
4
  <?php $i=0;
5
  foreach ($moduleTemplate as $key => $module) {
29
  :data-module_id="cell.cell_id"
30
  >
31
 
32
+ <span class="module_label">'.esc_html($module['label']).'
33
  <em v-if="cell.cell_identity_name"> {{cell.cell_identity_name}} </em>
34
  </span>
35
  <span class="amppb-setting-right">
36
+ <label @click="duplicateModule($event)" class="link amppb-module-copy" title="'.esc_attr($module['label']).'"
37
  :data-module_id="cell.cell_id"
38
  :data-container_id="cell.container_id"
39
  >
40
  <span class=" dashicons dashicons-admin-page"></span>
41
  </label>
42
+ <label @click="showModulePopUp($event)" class="link" title="'.esc_attr($module['label']).'" data-popupContent=\''.json_encode($module).'\'
43
  :data-module_id="cell.cell_id"
44
  :data-container_id="cell.container_id"
45
  :data-cell_identity_name = cell.cell_identity_name
pagebuilder/components/pbSettingTemplates.php CHANGED
@@ -1,4 +1,5 @@
1
- <?php
 
2
  $arraySetting = array(
3
  'tabs'=> array(
4
  'layout'=>'Layout Directory',
@@ -26,10 +27,10 @@ global $savedlayoutTemplate;
26
  <?php
27
  foreach($arraySetting['tabs'] as $key=>$sidebarlink){
28
  ?>
29
- <li @click="settingShowTabs('<?php echo $key; ?>')"
30
  class="link"
31
- :class="{'active': (modalCrrentTab=='<?php echo $key ?>')}">
32
- <?php echo $sidebarlink; ?>
33
  </li>
34
  <?php } ?>
35
  </ul>
@@ -103,21 +104,21 @@ global $savedlayoutTemplate;
103
  <div class="amppb-layout-wrapper">
104
  <h4 class="amppb-layout-title"><?php
105
  if(strpos($layoutName, '-upcomming')!==False){
106
- echo "<a class='layouts_pro_lbl' href='https://ampforwp.com/amp-layouts' target='_blank'>PRO</a>".$lay[$firstLayout]['name'];
107
  }else{
108
- echo ucfirst($layoutName);
109
  } ?></h4>
110
  <div class="amppb-layout-screenshot">
111
  <?php
112
  if(strpos($layoutName, '-upcomming')!==False){
113
  ?>
114
- <a href="<?php echo $lay[$firstLayout]["preview_demo"]; ?>" target="_blank"><img src="<?php echo $lay[$firstLayout]['preview_img']; ?>"></a>
115
  <?php
116
  }else{
117
  ?>
118
- <img src="<?php echo $lay[$firstLayout]['preview_img']; ?>" @click="viewSpacialLayouts($event);"
119
  data-info='<?php echo json_encode($lay); ?>'
120
- data-heading="<?php echo ucfirst($layoutName); ?>">
121
  <?php } ?>
122
  </div>
123
  <div class="amppb-layout-bottom">
@@ -125,12 +126,12 @@ global $savedlayoutTemplate;
125
  <?php
126
  if(strpos($layoutName, '-upcomming')!==False){
127
  ?>
128
- <a target="_blank" class="button button-lg" href="<?php echo $lay[$firstLayout]["preview_demo"]; ?>">View Layout</a>
129
  <?php
130
  }else{
131
  ?>
132
  <button type="button" class="button button-lg"@click="viewSpacialLayouts($event);" data-info='<?php echo json_encode($lay); ?>'
133
- data-heading="<?php echo ucfirst($layoutName); ?>">View Layout</button>
134
  <?php } ?>
135
  </div>
136
  </div>
@@ -171,7 +172,7 @@ global $savedlayoutTemplate;
171
  <div class="amppb-modal-col-2">
172
  <div class="exportcompleteData">
173
  <iframe id="amppb-panels-export-iframe" style="display: none;" name="amppb-panels-export-iframe"></iframe>
174
- <form action="<?php echo admin_url('admin-ajax.php?action=amppb_export_layout_data') ?>" target="amppb-panels-export-iframe" method="post">
175
  <label class="import-export-label">Export Current Layout</label>
176
  <button type="submit" class="button button-primary button-large">
177
  Export
1
+ <?php // Exit if accessed directly.
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
  $arraySetting = array(
4
  'tabs'=> array(
5
  'layout'=>'Layout Directory',
27
  <?php
28
  foreach($arraySetting['tabs'] as $key=>$sidebarlink){
29
  ?>
30
+ <li @click="settingShowTabs('<?php echo esc_attr($key); ?>')"
31
  class="link"
32
+ :class="{'active': (modalCrrentTab=='<?php echo esc_attr($key) ?>')}">
33
+ <?php echo esc_html($sidebarlink); ?>
34
  </li>
35
  <?php } ?>
36
  </ul>
104
  <div class="amppb-layout-wrapper">
105
  <h4 class="amppb-layout-title"><?php
106
  if(strpos($layoutName, '-upcomming')!==False){
107
+ echo "<a class='layouts_pro_lbl' href='https://ampforwp.com/amp-layouts' target='_blank'>PRO</a>".esc_html($lay[$firstLayout]['name']);
108
  }else{
109
+ echo esc_html(ucfirst($layoutName), 'accelerated-mobile-pages');
110
  } ?></h4>
111
  <div class="amppb-layout-screenshot">
112
  <?php
113
  if(strpos($layoutName, '-upcomming')!==False){
114
  ?>
115
+ <a href="<?php echo esc_url($lay[$firstLayout]["preview_demo"]); ?>" target="_blank"><img src="<?php echo esc_url($lay[$firstLayout]['preview_img']); ?>"></a>
116
  <?php
117
  }else{
118
  ?>
119
+ <img src="<?php echo esc_url($lay[$firstLayout]['preview_img']); ?>" @click="viewSpacialLayouts($event);"
120
  data-info='<?php echo json_encode($lay); ?>'
121
+ data-heading="<?php echo esc_attr( ucfirst($layoutName) ); ?>">
122
  <?php } ?>
123
  </div>
124
  <div class="amppb-layout-bottom">
126
  <?php
127
  if(strpos($layoutName, '-upcomming')!==False){
128
  ?>
129
+ <a target="_blank" class="button button-lg" href="<?php echo esc_url($lay[$firstLayout]["preview_demo"]); ?>">View Layout</a>
130
  <?php
131
  }else{
132
  ?>
133
  <button type="button" class="button button-lg"@click="viewSpacialLayouts($event);" data-info='<?php echo json_encode($lay); ?>'
134
+ data-heading="<?php echo esc_attr(ucfirst($layoutName)); ?>">View Layout</button>
135
  <?php } ?>
136
  </div>
137
  </div>
172
  <div class="amppb-modal-col-2">
173
  <div class="exportcompleteData">
174
  <iframe id="amppb-panels-export-iframe" style="display: none;" name="amppb-panels-export-iframe"></iframe>
175
+ <form action="<?php echo esc_url( admin_url('admin-ajax.php?action=amppb_export_layout_data&verify_nonce='.wp_create_nonce('verify_pb')) ); ?>" target="amppb-panels-export-iframe" method="post">
176
  <label class="import-export-label">Export Current Layout</label>
177
  <button type="submit" class="button button-primary button-large">
178
  Export
pagebuilder/config/moduleTemplate.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $moduleTemplate = array();
3
  $layoutTemplate = array();
4
 
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $moduleTemplate = array();
5
  $layoutTemplate = array();
6
 
pagebuilder/functions.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  /* Admin Script */
3
  /**
4
  * Admin pagebuilder Scripts
@@ -21,8 +25,8 @@ function amppbbase_admin_scripts( $hook_suffix ){
21
  && in_array( $hook_suffix, array( 'post.php', 'post-new.php' ) ) ){
22
  //if($post_type=='post' || $post_type=='page'){
23
  /* Enqueue CSS & JS For Page Builder */
24
- wp_enqueue_style( 'amppb-admin', AMP_PAGE_BUILDER_URL. 'inc/admin-amp-page-builder.css', array(), AMPFORWP_VERSION );
25
- wp_enqueue_style('ampforwp-dynamic-css', admin_url('admin-ajax.php?action=ampforwp_dynaminc_css'), array(), AMPFORWP_VERSION, 'all' );
26
  wp_enqueue_media();
27
  //To add page
28
  if ( ! class_exists( '_WP_Editors', false ) ) {
@@ -32,11 +36,11 @@ function amppbbase_admin_scripts( $hook_suffix ){
32
  $amp_current_post_id = $postId = get_the_ID();
33
 
34
 
35
- wp_enqueue_script( 'vuejs', AMP_PAGE_BUILDER_URL. 'inc/assets/vue/vue.min.js', array(),AMPFORWP_VERSION, true);
36
- wp_enqueue_script( 'vuejs-resource', AMP_PAGE_BUILDER_URL. 'inc/assets/vuejs-resource/vue-resource.min.js', array(), AMPFORWP_VERSION, true);//For Http Clients
37
- wp_enqueue_script( 'vueSortable', AMP_PAGE_BUILDER_URL. 'inc/assets/vue.draggable/Sortable.min.js', array(), AMPFORWP_VERSION, true);
38
- wp_enqueue_script( 'vuedraggable', AMP_PAGE_BUILDER_URL. 'inc/assets/vue.draggable/vuedraggable.min.js' ,array(),AMPFORWP_VERSION, true);
39
- wp_enqueue_script( 'vuedropdrag', AMP_PAGE_BUILDER_URL. 'inc/assets/vue-drag-drop/vue-drag-drop.browser.js', array(), AMPFORWP_VERSION, true);
40
 
41
  wp_register_script( 'amppb-admin', AMP_PAGE_BUILDER_URL. 'inc/admin-amp-page-builder.js', array(
42
  'jquery',
@@ -95,7 +99,8 @@ function amppbbase_admin_scripts( $hook_suffix ){
95
  }
96
  }
97
  $components_options = array(
98
- "ajaxUrl"=>admin_url( 'admin-ajax.php' ),
 
99
  "savedLayouts"=>$allPostLayout,
100
  "startPagebuilder"=>(get_post_meta($postId,'use_ampforwp_page_builder',true)=='yes'? 1:0),
101
  "checkedPageBuilder"=>get_post_meta($postId,'ampforwp_page_builder_enable', true),
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  /* Admin Script */
7
  /**
8
  * Admin pagebuilder Scripts
25
  && in_array( $hook_suffix, array( 'post.php', 'post-new.php' ) ) ){
26
  //if($post_type=='post' || $post_type=='page'){
27
  /* Enqueue CSS & JS For Page Builder */
28
+ wp_enqueue_style( 'amppb-admin', esc_url(AMP_PAGE_BUILDER_URL. 'inc/admin-amp-page-builder.css'), array(), AMPFORWP_VERSION );
29
+ wp_enqueue_style('ampforwp-dynamic-css', wp_nonce_url(esc_url(admin_url('admin-ajax.php?action=ampforwp_dynaminc_css')), 'verify_pb', 'verify_nonce' ), array(), AMPFORWP_VERSION, 'all' );
30
  wp_enqueue_media();
31
  //To add page
32
  if ( ! class_exists( '_WP_Editors', false ) ) {
36
  $amp_current_post_id = $postId = get_the_ID();
37
 
38
 
39
+ wp_enqueue_script( 'vuejs', esc_url(AMP_PAGE_BUILDER_URL. 'inc/assets/vue/vue.min.js'), array(),AMPFORWP_VERSION, true);
40
+ wp_enqueue_script( 'vuejs-resource', esc_url(AMP_PAGE_BUILDER_URL. 'inc/assets/vuejs-resource/vue-resource.min.js'), array(), AMPFORWP_VERSION, true);//For Http Clients
41
+ wp_enqueue_script( 'vueSortable', esc_url(AMP_PAGE_BUILDER_URL. 'inc/assets/vue.draggable/Sortable.min.js'), array(), AMPFORWP_VERSION, true);
42
+ wp_enqueue_script( 'vuedraggable', esc_url(AMP_PAGE_BUILDER_URL. 'inc/assets/vue.draggable/vuedraggable.min.js') ,array(),AMPFORWP_VERSION, true);
43
+ wp_enqueue_script( 'vuedropdrag', esc_url(AMP_PAGE_BUILDER_URL. 'inc/assets/vue-drag-drop/vue-drag-drop.browser.js'), array(), AMPFORWP_VERSION, true);
44
 
45
  wp_register_script( 'amppb-admin', AMP_PAGE_BUILDER_URL. 'inc/admin-amp-page-builder.js', array(
46
  'jquery',
99
  }
100
  }
101
  $components_options = array(
102
+ "ajaxUrl"=>esc_url(admin_url( 'admin-ajax.php' )),
103
+ "secure_nonce" => wp_create_nonce('verify_pb'),
104
  "savedLayouts"=>$allPostLayout,
105
  "startPagebuilder"=>(get_post_meta($postId,'use_ampforwp_page_builder',true)=='yes'? 1:0),
106
  "checkedPageBuilder"=>get_post_meta($postId,'ampforwp_page_builder_enable', true),
pagebuilder/inc/admin-amp-page-builder.js CHANGED
@@ -45,7 +45,8 @@ Vue.component('amp-pagebuilder-modal', {
45
  var saveLayoutData = {
46
  action: 'amppb_save_layout_data',
47
  layoutname:this.save_layout.name,
48
- layoutdata: JSON.stringify(this.currentLayoutData)
 
49
  };
50
  this.$http.post(amppb_panel_options.ajaxUrl+'?action=amppb_save_layout_data',
51
  saveLayoutData,
@@ -555,7 +556,7 @@ Vue.component('fields-data',{
555
  console.log(jQuery(currentSelectfield).parents('p'))
556
  jQuery(currentSelectfield).parents('p').find('img').attr('src','../wp-includes/images/spinner.gif');
557
  }
558
- this.$http.post(amppb_panel_options.ajaxUrl+'?action=ampforwp_get_image&id='+the_id,
559
  {}
560
  ,{
561
  headers:{
@@ -1031,7 +1032,7 @@ var app = new Vue({
1031
  },
1032
  amppb_startFunction: function(event){
1033
  var postId = event.target.getAttribute('data-postId');
1034
- this.$http.post(amppb_panel_options.ajaxUrl+'?action=enable_amp_pagebuilder',
1035
  {
1036
  postId
1037
  }
@@ -1060,7 +1061,7 @@ var app = new Vue({
1060
  ampforwp_icon_list: function(){
1061
  if(this.startPagebuilder==1){
1062
 
1063
- this.$http.post(amppb_panel_options.ajaxUrl+'?action=ampforwp_icons_list_format',
1064
  {}
1065
  ,{
1066
  headers:{
45
  var saveLayoutData = {
46
  action: 'amppb_save_layout_data',
47
  layoutname:this.save_layout.name,
48
+ layoutdata: JSON.stringify(this.currentLayoutData),
49
+ verify_nonce: amppb_panel_options.secure_nonce
50
  };
51
  this.$http.post(amppb_panel_options.ajaxUrl+'?action=amppb_save_layout_data',
52
  saveLayoutData,
556
  console.log(jQuery(currentSelectfield).parents('p'))
557
  jQuery(currentSelectfield).parents('p').find('img').attr('src','../wp-includes/images/spinner.gif');
558
  }
559
+ this.$http.post(amppb_panel_options.ajaxUrl+'?action=ampforwp_get_image&id='+the_id+'&verify_nonce='+amppb_panel_options.secure_nonce,
560
  {}
561
  ,{
562
  headers:{
1032
  },
1033
  amppb_startFunction: function(event){
1034
  var postId = event.target.getAttribute('data-postId');
1035
+ this.$http.post(amppb_panel_options.ajaxUrl+'?action=enable_amp_pagebuilder&verify_nonce='+amppb_panel_options.secure_nonce,
1036
  {
1037
  postId
1038
  }
1061
  ampforwp_icon_list: function(){
1062
  if(this.startPagebuilder==1){
1063
 
1064
+ this.$http.post(amppb_panel_options.ajaxUrl+'?action=ampforwp_icons_list_format&verify_nonce='+amppb_panel_options.secure_nonce,
1065
  {}
1066
  ,{
1067
  headers:{
pagebuilder/inc/adminAjaxContents.php CHANGED
@@ -1,16 +1,46 @@
1
  <?php
2
- add_action('wp_ajax_amppb_color_picker',function(){
 
 
 
 
 
 
 
 
 
 
 
 
3
  wp_enqueue_style( 'wp-color-picker' );
4
  echo '<input type="text" value="#bada55" class="color-field"/><script>$(\'.color-field\').wpColorPicker()</script>';
 
5
 
6
- });
7
-
8
- add_action('wp_ajax_amppb_textEditor', function(){
 
 
 
 
 
 
 
9
  echo wp_editor( '', 'My_TextAreaID_22', $settings = array( 'tinymce'=>true, 'textarea_name'=>'name77', 'wpautop' =>false, 'media_buttons' => true , 'teeny' => false, 'quicktags'=>true, ) ); exit;
10
- });
11
 
12
  add_action("wp_ajax_enable_amp_pagebuilder", "enable_amp_pagebuilder");
13
  function enable_amp_pagebuilder(){
 
 
 
 
 
 
 
 
 
 
14
  if(isset($_POST['postId'])){
15
  $postId = $_POST['postId'];
16
  }else{
@@ -27,6 +57,15 @@ function enable_amp_pagebuilder(){
27
 
28
  add_action( 'wp_ajax_amppb_export_layout_data', 'amppb_export_layout_data');
29
  function amppb_export_layout_data(){
 
 
 
 
 
 
 
 
 
30
  header( 'content-type: application/json' );
31
  header( 'Content-Disposition: attachment; filename=layout-' . date( 'dmY' ) . '.json' );
32
 
@@ -37,6 +76,15 @@ function amppb_export_layout_data(){
37
  }
38
  add_action( 'wp_ajax_amppb_save_layout_data', 'amppb_save_layout_data');
39
  function amppb_save_layout_data(){
 
 
 
 
 
 
 
 
 
40
  $layoutname = $_POST['layoutname'];
41
  $layoutdata = $_POST['layoutdata'];
42
  $postarr = array(
@@ -74,6 +122,14 @@ function amppb_save_layout_data(){
74
  // Ajax action to refresh the user image
75
  add_action( 'wp_ajax_ampforwp_get_image', 'ampforwp_get_image');
76
  function ampforwp_get_image() {
 
 
 
 
 
 
 
 
77
  if(isset($_GET['id']) ){
78
  if(strpos($_GET['id'],",") !== false){
79
  $get_ids = explode(",", $_GET['id']);
@@ -110,6 +166,14 @@ function ampforwp_get_image() {
110
 
111
  add_action( 'wp_ajax_ampforwp_icons_list_format', 'ampforwp_icons_list_format');
112
  function ampforwp_icons_list_format(){
 
 
 
 
 
 
 
 
113
  $amp_icons_css_array = include AMPFORWP_PLUGIN_DIR .'includes/icons/amp-icons.php';
114
 
115
  foreach ($amp_icons_css_array as $key=>$value ) {
@@ -123,6 +187,14 @@ add_action( 'wp_ajax_ampforwp_dynaminc_css', 'ampforwp_dynaminc_css' );
123
  add_action( 'wp_ajax_nopriv_ampforwp_dynaminc_css', 'ampforwp_dynaminc_css' );
124
 
125
  function ampforwp_dynaminc_css() {
 
 
 
 
 
 
 
 
126
  $amp_icons_css_array = include AMPFORWP_PLUGIN_DIR .'includes/icons/amp-icons.php';
127
  header("Content-type: text/css; charset: UTF-8");
128
  foreach ($amp_icons_css_array as $key=>$value ) {
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
+
5
+ add_action('wp_ajax_amppb_color_picker','amppb_color_picker');
6
+ function amppb_color_picker(){
7
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_pb' ) ) {
8
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
9
+ die;
10
+ }
11
+ // Exit if the user does not have proper permissions
12
+ if(! current_user_can( 'editor' ) ) {
13
+ return ;
14
+ }
15
  wp_enqueue_style( 'wp-color-picker' );
16
  echo '<input type="text" value="#bada55" class="color-field"/><script>$(\'.color-field\').wpColorPicker()</script>';
17
+ }
18
 
19
+ add_action('wp_ajax_amppb_textEditor', 'amppb_textEditor');
20
+ function amppb_textEditor(){
21
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_pb' ) ) {
22
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
23
+ die;
24
+ }
25
+ // Exit if the user does not have proper permissions
26
+ if(! current_user_can( 'editor' ) ) {
27
+ return ;
28
+ }
29
  echo wp_editor( '', 'My_TextAreaID_22', $settings = array( 'tinymce'=>true, 'textarea_name'=>'name77', 'wpautop' =>false, 'media_buttons' => true , 'teeny' => false, 'quicktags'=>true, ) ); exit;
30
+ }
31
 
32
  add_action("wp_ajax_enable_amp_pagebuilder", "enable_amp_pagebuilder");
33
  function enable_amp_pagebuilder(){
34
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_pb' ) ) {
35
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
36
+ die;
37
+ }
38
+ // Exit if the user does not have proper permissions
39
+ // check user permissions
40
+ if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) {
41
+ echo json_encode(array("status"=>300,"message"=>'User do not have access'));
42
+ die;
43
+ }
44
  if(isset($_POST['postId'])){
45
  $postId = $_POST['postId'];
46
  }else{
57
 
58
  add_action( 'wp_ajax_amppb_export_layout_data', 'amppb_export_layout_data');
59
  function amppb_export_layout_data(){
60
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_pb' ) ) {
61
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
62
+ die;
63
+ }
64
+ // Exit if the user does not have proper permissions
65
+ if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) {
66
+ echo json_encode(array("status"=>300,"message"=>'User do not have access'));
67
+ die;
68
+ }
69
  header( 'content-type: application/json' );
70
  header( 'Content-Disposition: attachment; filename=layout-' . date( 'dmY' ) . '.json' );
71
 
76
  }
77
  add_action( 'wp_ajax_amppb_save_layout_data', 'amppb_save_layout_data');
78
  function amppb_save_layout_data(){
79
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_pb' ) ) {
80
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
81
+ die;
82
+ }
83
+ // Exit if the user does not have proper permissions
84
+ if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) {
85
+ echo json_encode(array("status"=>300,"message"=>'User not have authority'));
86
+ die;
87
+ }
88
  $layoutname = $_POST['layoutname'];
89
  $layoutdata = $_POST['layoutdata'];
90
  $postarr = array(
122
  // Ajax action to refresh the user image
123
  add_action( 'wp_ajax_ampforwp_get_image', 'ampforwp_get_image');
124
  function ampforwp_get_image() {
125
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_pb' ) ) {
126
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
127
+ die;
128
+ }
129
+ if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) {
130
+ echo json_encode(array("status"=>300,"message"=>'User not have authority'));
131
+ die;
132
+ }
133
  if(isset($_GET['id']) ){
134
  if(strpos($_GET['id'],",") !== false){
135
  $get_ids = explode(",", $_GET['id']);
166
 
167
  add_action( 'wp_ajax_ampforwp_icons_list_format', 'ampforwp_icons_list_format');
168
  function ampforwp_icons_list_format(){
169
+ if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_pb' ) ) {
170
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
171
+ die;
172
+ }
173
+ if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) {
174
+ echo json_encode(array("status"=>300,"message"=>'User not have authority'));
175
+ die;
176
+ }
177
  $amp_icons_css_array = include AMPFORWP_PLUGIN_DIR .'includes/icons/amp-icons.php';
178
 
179
  foreach ($amp_icons_css_array as $key=>$value ) {
187
  add_action( 'wp_ajax_nopriv_ampforwp_dynaminc_css', 'ampforwp_dynaminc_css' );
188
 
189
  function ampforwp_dynaminc_css() {
190
+ if(!isset($_REQUEST['verify_nonce']) || !wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_pb' ) ) {
191
+ echo json_encode(array("status"=>300,"message"=>'Request not valid'));
192
+ die;
193
+ }
194
+ if(!is_admin()){
195
+ echo json_encode(array("status"=>300,"message"=>'user not valid'));
196
+ die;
197
+ }
198
  $amp_icons_css_array = include AMPFORWP_PLUGIN_DIR .'includes/icons/amp-icons.php';
199
  header("Content-type: text/css; charset: UTF-8");
200
  foreach ($amp_icons_css_array as $key=>$value ) {
pagebuilder/inc/amppb_save_data.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  /* Save post meta on the 'save_post' hook. */
3
  add_action( 'save_post', 'amppb_save_post', 10, 2 );
4
  /**
@@ -13,6 +17,11 @@ function amppb_save_post( $post_id, $post ){
13
  if ( ! isset( $request['amppb_nonce'] ) || ! wp_verify_nonce( $request['amppb_nonce'], 'amppb_nonce_action' ) ){
14
  return $post_id;
15
  }
 
 
 
 
 
16
  /* Do not save on autosave */
17
  if ( defined('DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
18
  return $post_id;
@@ -28,7 +37,7 @@ function amppb_save_post( $post_id, $post ){
28
 
29
  /* Get new submitted data and sanitize it. */
30
  $submitted_data = isset( $request['amp-page-builder'] ) ? $request['amp-page-builder'] : null;
31
- $submitted_data = (str_replace("'", "&apos;", $submitted_data));
32
  $submitted_data = wp_slash($submitted_data);
33
 
34
  /* New data submitted, No previous data, create it */
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  /* Save post meta on the 'save_post' hook. */
7
  add_action( 'save_post', 'amppb_save_post', 10, 2 );
8
  /**
17
  if ( ! isset( $request['amppb_nonce'] ) || ! wp_verify_nonce( $request['amppb_nonce'], 'amppb_nonce_action' ) ){
18
  return $post_id;
19
  }
20
+
21
+
22
+ if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) {
23
+ return $post_id;
24
+ }
25
  /* Do not save on autosave */
26
  if ( defined('DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
27
  return $post_id;
37
 
38
  /* Get new submitted data and sanitize it. */
39
  $submitted_data = isset( $request['amp-page-builder'] ) ? $request['amp-page-builder'] : null;
40
+ $submitted_data = (str_replace(array("'","<script>","</script>"), array("&apos;","",""), $submitted_data));
41
  $submitted_data = wp_slash($submitted_data);
42
 
43
  /* New data submitted, No previous data, create it */
pagebuilder/inc/js-templates.php CHANGED
@@ -1,18 +1,12 @@
1
  <?php
 
 
2
  /*
3
- *
4
- *
5
  * Module Template
6
- *
7
- *
8
- *
9
- *
10
  */
11
  global $moduleTemplate;
12
  include_once AMP_PAGE_BUILDER . '/components/modulesHtmlTemplate.php';
13
  include_once AMP_PAGE_BUILDER . '/components/fieldsTemplate.php';
14
  include_once AMP_PAGE_BUILDER . '/components/modulePopupTemplate.php';
15
  include_once AMP_PAGE_BUILDER . '/components/pbSettingTemplates.php';
16
- ?>
17
-
18
-
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  /*
 
 
5
  * Module Template
 
 
 
 
6
  */
7
  global $moduleTemplate;
8
  include_once AMP_PAGE_BUILDER . '/components/modulesHtmlTemplate.php';
9
  include_once AMP_PAGE_BUILDER . '/components/fieldsTemplate.php';
10
  include_once AMP_PAGE_BUILDER . '/components/modulePopupTemplate.php';
11
  include_once AMP_PAGE_BUILDER . '/components/pbSettingTemplates.php';
12
+ ?>
 
 
pagebuilder/inc/viewShowFrontData.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  /***
3
  Show Front Data
4
  ****/
@@ -488,6 +492,8 @@ function amp_pagebuilder_content_styles(){
488
  }//If Closed $previousData!="" && $ampforwp_pagebuilder_enable=='yes'
489
  }
490
  function amppb_validateCss($css){
 
 
491
  $css = preg_replace('/@media([^\r\n,{}]+){\s*}/', "", $css);
492
  $css = preg_replace('/(([a-z -]*:(\s)*;))/', "", $css);
493
  $css = preg_replace('/((;[\s\n;]*;))/', ";", $css);
@@ -544,6 +550,7 @@ function amppb_post_content($content){
544
  }else{
545
  $replace .= '';
546
  }
 
547
  if(! is_array($field['name']) && $field['content_type']=='html'){
548
  $rowStartTemplate = str_replace('{{'.$field['name'].'}}', $replace, $rowStartTemplate);
549
  }
@@ -659,6 +666,10 @@ function rowData($container,$col,$moduleTemplate){
659
  $image_alt = (isset($imageDetails['alt'])? $imageDetails['alt']: "");
660
  }
661
  }
 
 
 
 
662
 
663
  $repeaterFrontTemplate = str_replace(
664
  '{{'.$moduleField['name'].'}}',
@@ -701,6 +712,9 @@ function rowData($container,$col,$moduleTemplate){
701
  );
702
  $repeaterFrontTemplate = ampforwp_replaceIfContentConditional($moduleField['name'], $imageUrl, $repeaterFrontTemplate);
703
  }else{
 
 
 
704
  $replace = nl2br($replace);
705
  $repeaterFrontTemplate = str_replace(
706
  '{{'.$moduleField['name'].'}}',
@@ -714,7 +728,7 @@ function rowData($container,$col,$moduleTemplate){
714
  $repeaterUniqueId++;
715
  }
716
  }
717
- $repeaterFrontTemplate = str_replace('{{repeater-module-class}}', $moduleField['name'].'_'.$repeaterVarIndex, $repeaterFrontTemplate);
718
 
719
  $repeaterFields .= $repeaterFrontTemplate;
720
 
@@ -740,7 +754,6 @@ function rowData($container,$col,$moduleTemplate){
740
  }
741
  }
742
  }//If for Module is repeater or not
743
- //echo $moduleFrontHtml;die;
744
 
745
  switch($moduleName){
746
  case 'gallery_image':
@@ -776,14 +789,13 @@ function rowData($container,$col,$moduleTemplate){
776
  if(trim($fieldValues['category_selection']) != 'recent_option'){
777
  $catName = get_cat_name($fieldValues['category_selection']);
778
  $cat_link = get_category_link($fieldValues['category_selection']);
779
- $cat_link = esc_url(ampforwp_url_controller($cat_link));
780
  }
781
  $moduleFrontHtml = str_replace('{{content_category_title}}', urldecode($catName), $moduleFrontHtml);
782
  $moduleFrontHtml = str_replace('{{content_category_link}}', $cat_link, $moduleFrontHtml);
783
 
784
  $moduleFrontHtml = str_replace('{{content_title}}', urldecode($fieldValues['content_title']), $moduleFrontHtml);
785
  $moduleFrontHtml = str_replace('{{category_selection}}', $totalLoopHtml, $moduleFrontHtml);
786
- //print_r($moduleFrontHtml);die;
787
  /* Restore original Post Data */
788
  wp_reset_postdata();
789
  if(isset($moduleTemplate[$contentArray['type']]['fields']) && count($moduleTemplate[$contentArray['type']]['fields']) > 0) {
@@ -827,6 +839,11 @@ function rowData($container,$col,$moduleTemplate){
827
  $image_alt = (isset($imageDetails['alt'])? $imageDetails['alt']: "");
828
  }
829
  }
 
 
 
 
 
830
  $moduleFrontHtml = str_replace(
831
  '{{'.$field['name'].'}}',
832
  $imageUrl,
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  /***
7
  Show Front Data
8
  ****/
492
  }//If Closed $previousData!="" && $ampforwp_pagebuilder_enable=='yes'
493
  }
494
  function amppb_validateCss($css){
495
+ $css = (esc_html($css));
496
+ $css = str_replace('&quot;', '"', $css);
497
  $css = preg_replace('/@media([^\r\n,{}]+){\s*}/', "", $css);
498
  $css = preg_replace('/(([a-z -]*:(\s)*;))/', "", $css);
499
  $css = preg_replace('/((;[\s\n;]*;))/', ";", $css);
550
  }else{
551
  $replace .= '';
552
  }
553
+ $replace = esc_attr($replace);
554
  if(! is_array($field['name']) && $field['content_type']=='html'){
555
  $rowStartTemplate = str_replace('{{'.$field['name'].'}}', $replace, $rowStartTemplate);
556
  }
666
  $image_alt = (isset($imageDetails['alt'])? $imageDetails['alt']: "");
667
  }
668
  }
669
+ $imageUrl = esc_url($imageUrl);
670
+ $imageWidth = esc_attr($imageWidth);
671
+ $imageHeight = esc_attr($imageHeight);
672
+ $image_alt = esc_html($image_alt);
673
 
674
  $repeaterFrontTemplate = str_replace(
675
  '{{'.$moduleField['name'].'}}',
712
  );
713
  $repeaterFrontTemplate = ampforwp_replaceIfContentConditional($moduleField['name'], $imageUrl, $repeaterFrontTemplate);
714
  }else{
715
+ if($moduleField['type']=="text"){
716
+ $replace = esc_html($replace);
717
+ }
718
  $replace = nl2br($replace);
719
  $repeaterFrontTemplate = str_replace(
720
  '{{'.$moduleField['name'].'}}',
728
  $repeaterUniqueId++;
729
  }
730
  }
731
+ $repeaterFrontTemplate = str_replace('{{repeater-module-class}}', esc_attr($moduleField['name'].'_'.$repeaterVarIndex), $repeaterFrontTemplate);
732
 
733
  $repeaterFields .= $repeaterFrontTemplate;
734
 
754
  }
755
  }
756
  }//If for Module is repeater or not
 
757
 
758
  switch($moduleName){
759
  case 'gallery_image':
789
  if(trim($fieldValues['category_selection']) != 'recent_option'){
790
  $catName = get_cat_name($fieldValues['category_selection']);
791
  $cat_link = get_category_link($fieldValues['category_selection']);
792
+ $cat_link = ampforwp_url_controller($cat_link);
793
  }
794
  $moduleFrontHtml = str_replace('{{content_category_title}}', urldecode($catName), $moduleFrontHtml);
795
  $moduleFrontHtml = str_replace('{{content_category_link}}', $cat_link, $moduleFrontHtml);
796
 
797
  $moduleFrontHtml = str_replace('{{content_title}}', urldecode($fieldValues['content_title']), $moduleFrontHtml);
798
  $moduleFrontHtml = str_replace('{{category_selection}}', $totalLoopHtml, $moduleFrontHtml);
 
799
  /* Restore original Post Data */
800
  wp_reset_postdata();
801
  if(isset($moduleTemplate[$contentArray['type']]['fields']) && count($moduleTemplate[$contentArray['type']]['fields']) > 0) {
839
  $image_alt = (isset($imageDetails['alt'])? $imageDetails['alt']: "");
840
  }
841
  }
842
+ $imageUrl = esc_url($imageUrl);
843
+ $imageWidth = esc_attr($imageWidth);
844
+ $imageHeight = esc_attr($imageHeight);
845
+ $image_alt = esc_html($image_alt);
846
+
847
  $moduleFrontHtml = str_replace(
848
  '{{'.$field['name'].'}}',
849
  $imageUrl,
pagebuilder/layouts/swift-layouts/1-landing-layout.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  return array(
3
  'name'=> 'Landing Page',
4
  'preview_demo'=>'https://ampforwp.com/demo/amp-pagebuilder/amp/',
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  return array(
5
  'name'=> 'Landing Page',
6
  'preview_demo'=>'https://ampforwp.com/demo/amp-pagebuilder/amp/',
pagebuilder/layouts/swift-layouts/2-features-layout.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  return array(
3
  'name'=> 'Features Page',
4
  'preview_demo'=>'https://ampforwp.com/demo/amp-pagebuilder/features/amp/',
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  return array(
5
  'name'=> 'Features Page',
6
  'preview_demo'=>'https://ampforwp.com/demo/amp-pagebuilder/features/amp/',
pagebuilder/layouts/swift-layouts/3-pricing-layout.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  return array(
3
  'name'=> 'Pricing Page',
4
  'preview_demo'=>'https://ampforwp.com/demo/amp-pagebuilder/pricing/amp/',
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  return array(
5
  'name'=> 'Pricing Page',
6
  'preview_demo'=>'https://ampforwp.com/demo/amp-pagebuilder/pricing/amp/',
pagebuilder/modules/accordion-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  add_filter( 'amp_post_template_data', 'ampforwp_framework_pagebuilder_accordions_scripts' );
3
  function ampforwp_framework_pagebuilder_accordions_scripts( $data ) {
4
 
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  add_filter( 'amp_post_template_data', 'ampforwp_framework_pagebuilder_accordions_scripts' );
5
  function ampforwp_framework_pagebuilder_accordions_scripts( $data ) {
6
 
pagebuilder/modules/adsense-ad-module.php CHANGED
@@ -1,5 +1,6 @@
1
  <?php
2
-
 
3
  $output = '<amp-ad class="amp-ad-1"
4
  type="adsense"
5
  {{if_condition_ad_size_option==300x250}}width="300"{{ifend_condition_ad_size_option_300x250}}
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '<amp-ad class="amp-ad-1"
5
  type="adsense"
6
  {{if_condition_ad_size_option==300x250}}width="300"{{ifend_condition_ad_size_option_300x250}}
pagebuilder/modules/blurb-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '<div class="ln-fx">{{repeater}}</div>';
3
  $css = '
4
  {{if_condition_blurb_layout_type==1}}
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '<div class="ln-fx">{{repeater}}</div>';
5
  $css = '
6
  {{if_condition_blurb_layout_type==1}}
pagebuilder/modules/blurb-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '<div class="amp_pb_module amp_blurb {{css_class}}"><img src="{{blurb_image}}" width="{{image_width}}" height="{{image_height}}" layout="responsive"/>
3
  <h4>{{text_title}}</h4>
4
  <p>{{text_description}}</p>
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '<div class="amp_pb_module amp_blurb {{css_class}}"><img src="{{blurb_image}}" width="{{image_width}}" height="{{image_height}}" layout="responsive"/>
5
  <h4>{{text_title}}</h4>
6
  <p>{{text_description}}</p>
pagebuilder/modules/button-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  <div class="btn"><a href="{{btn_link}}" {{if_condition_page_link_open==new_page}}target="_blank"{{ifend_condition_page_link_open_new_page}} {{if_condition_check_for_nofollow==1}}rel="nofollow"{{ifend_condition_check_for_nofollow_1}} class="btn-txt">{{content_title}}{{if_condition_check_for_icon==1}}<i class="ico-pic icon-{{icon-picker}}"></i>{{ifend_condition_check_for_icon_1}}</a>
4
  {{if_sub_heading}}<span>{{sub_heading}}</span> {{ifend_sub_heading}}</div>
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  <div class="btn"><a href="{{btn_link}}" {{if_condition_page_link_open==new_page}}target="_blank"{{ifend_condition_page_link_open_new_page}} {{if_condition_check_for_nofollow==1}}rel="nofollow"{{ifend_condition_check_for_nofollow_1}} class="btn-txt">{{content_title}}{{if_condition_check_for_icon==1}}<i class="ico-pic icon-{{icon-picker}}"></i>{{ifend_condition_check_for_icon_1}}</a>
6
  {{if_sub_heading}}<span>{{sub_heading}}</span> {{ifend_sub_heading}}</div>
pagebuilder/modules/button-module.php CHANGED
@@ -1,4 +1,7 @@
1
- <?php $output = '<div class="amp_pb_module amp_btn {{css_class}}">
 
 
 
2
  <a href="{{button_link}}">{{button_txt}}</a></div>';
3
  return array(
4
  'label' =>'Button',
1
+ <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
+ $output = '<div class="amp_pb_module amp_btn {{css_class}}">
5
  <a href="{{button_link}}">{{button_txt}}</a></div>';
6
  return array(
7
  'label' =>'Button',
pagebuilder/modules/code-module.php CHANGED
@@ -1,5 +1,6 @@
1
  <?php
2
-
 
3
  add_filter("ampforwp_extension_pagebuilder_module_template", 'ampforwp_code_module_replacement',10,3);
4
  function ampforwp_code_module_replacement($moduleFrontHtml,$moduleTemplate, $contentArray){
5
  if($moduleTemplate['name']==='code'){
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  add_filter("ampforwp_extension_pagebuilder_module_template", 'ampforwp_code_module_replacement',10,3);
5
  function ampforwp_code_module_replacement($moduleFrontHtml,$moduleTemplate, $contentArray){
6
  if($moduleTemplate['name']==='code'){
pagebuilder/modules/contact-form-shortcode-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  {{if_condition_form_type==contact-form-7}}
4
  [contact-form-7 id="{{cf7_form_id}}"]
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  {{if_condition_form_type==contact-form-7}}
6
  [contact-form-7 id="{{cf7_form_id}}"]
pagebuilder/modules/contents-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  require_once ABSPATH . WPINC . '/category.php';
3
  $output = '{{if_condition_content_layout_type==1}}
4
  <div class="pb_mod cat_mod"><h4>{{content_title}}</h4>
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  require_once ABSPATH . WPINC . '/category.php';
5
  $output = '{{if_condition_content_layout_type==1}}
6
  <div class="pb_mod cat_mod"><h4>{{content_title}}</h4>
pagebuilder/modules/counter-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  <div class="ln-fx">{{repeater}}</div>';
4
  $css = '
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  <div class="ln-fx">{{repeater}}</div>';
6
  $css = '
pagebuilder/modules/cta-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  <div class="cta-tlt">
4
  <h2>{{content_title}}</h2>
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  <div class="cta-tlt">
6
  <h2>{{content_title}}</h2>
pagebuilder/modules/feature-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  <div class="ln-fx">{{repeater}}</div>';
4
  $css = '
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  <div class="ln-fx">{{repeater}}</div>';
6
  $css = '
pagebuilder/modules/gallery-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output =
3
  '<div class="amp-gallery-mod">
4
  <div class="amp_gallery_wrapper">{{repeater}}</div>
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output =
5
  '<div class="amp-gallery-mod">
6
  <div class="amp_gallery_wrapper">{{repeater}}</div>
pagebuilder/modules/heading-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '<{{header_type}} class="h-txt">{{content_title}}</{{header_type}}>';
3
  $css = '
4
  {{module-class}}{width:100%;text-align:{{align_type}};margin:{{margin_css}};padding:{{padding_css}};}
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '<{{header_type}} class="h-txt">{{content_title}}</{{header_type}}>';
5
  $css = '
6
  {{module-class}}{width:100%;text-align:{{align_type}};margin:{{margin_css}};padding:{{padding_css}};}
pagebuilder/modules/icons-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  <div class="ln-fx">{{repeater}}</div>';
4
  $css = '
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  <div class="ln-fx">{{repeater}}</div>';
6
  $css = '
pagebuilder/modules/image-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  {{if_condition_img_hyperlink==1}}<a href="{{hyperlink_link_img}}" {{if_condition_img_link_open==new_page}}target="_blank"{{ifend_condition_img_link_open_new_page}}>{{ifend_condition_img_hyperlink_1}}
4
  {{if_img_upload}}<amp-img src="{{img_upload}}" width="{{image_width}}" height="{{image_height}}" {{if_image_layout}}layout="{{image_layout}}"{{ifend_image_layout}} alt="{{image_alt}}"></amp-img>{{ifend_img_upload}}
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  {{if_condition_img_hyperlink==1}}<a href="{{hyperlink_link_img}}" {{if_condition_img_link_open==new_page}}target="_blank"{{ifend_condition_img_link_open_new_page}}>{{ifend_condition_img_hyperlink_1}}
6
  {{if_img_upload}}<amp-img src="{{img_upload}}" width="{{image_width}}" height="{{image_height}}" {{if_image_layout}}layout="{{image_layout}}"{{ifend_image_layout}} alt="{{image_alt}}"></amp-img>{{ifend_img_upload}}
pagebuilder/modules/image-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '{{if_selected_image}}<amp-img src="{{selected_image}}" class="{{css_class}}" width="{{image_width}}" height="{{image_height}}" layout="responsive" alt="{{image_alt}}"></amp-img>{{ifend_selected_image}}';
3
  return array(
4
  'label' =>'Image',
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '{{if_selected_image}}<amp-img src="{{selected_image}}" class="{{css_class}}" width="{{image_width}}" height="{{image_height}}" layout="responsive" alt="{{image_alt}}"></amp-img>{{ifend_selected_image}}';
5
  return array(
6
  'label' =>'Image',
pagebuilder/modules/list-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  {{repeater}}
4
  ';
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  {{repeater}}
6
  ';
pagebuilder/modules/pricing-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  <div class="ln-fx">{{repeater}}</div>';
4
  $css = '
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  <div class="ln-fx">{{repeater}}</div>';
6
  $css = '
pagebuilder/modules/slider-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  {{if_condition_carousel_layout_type==1}}
4
  <amp-carousel width="400" height="300" layout="responsive" type="slides" autoplay delay="{{delay}}">
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  {{if_condition_carousel_layout_type==1}}
6
  <amp-carousel width="400" height="300" layout="responsive" type="slides" autoplay delay="{{delay}}">
pagebuilder/modules/testimonial-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  <div class="ln-fx">{{repeater}}</div>
4
  ';
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  <div class="ln-fx">{{repeater}}</div>
6
  ';
pagebuilder/modules/text-mod-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  {{content_title}}
4
  ';
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  {{content_title}}
6
  ';
pagebuilder/modules/text-module.php CHANGED
@@ -1,4 +1,7 @@
1
- <?php $output = '<div class="amp_pb_module amp_text {{css_class}}">
 
 
 
2
  <p>{{text_editor}}</p>
3
  </div>';
4
  return array(
1
+ <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
+ $output = '<div class="amp_pb_module amp_text {{css_class}}">
5
  <p>{{text_editor}}</p>
6
  </div>';
7
  return array(
pagebuilder/modules/video-module.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $output = '
3
  {{if_condition_video_option==custom}}
4
  <amp-video width="{{width}}" height="{{height}}" src="{{video_upload_link}}"
1
  <?php
2
+ // Exit if accessed directly.
3
+ if ( ! defined( 'ABSPATH' ) ) exit;
4
  $output = '
5
  {{if_condition_video_option==custom}}
6
  <amp-video width="{{width}}" height="{{height}}" src="{{video_upload_link}}"
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: AMP, accelerated mobile pages, mobile, amp project, google amp, amp wp, go
4
  Donate link: https://www.paypal.me/Kaludi/25
5
  Requires at least: 3.0
6
  Tested up to: 4.9.8
7
- Stable tag: 0.9.97.19
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -118,6 +118,8 @@ Bug reports for AMP for WP are [welcomed on GitHub](https://github.com/ahmedkalu
118
 
119
  **[5. Frequently Asked Questions:](https://ampforwp.com/faq/)** Some of the Frequently Asked questions.
120
 
 
 
121
 
122
  == Installation ==
123
  **[Visit Help area for the Documentation:](https://ampforwp.com/help/)**
@@ -180,1820 +182,9 @@ You can contact us from [here](https://ampforwp.com/contact/)
180
  10. Homepage of Design One
181
  11. Pingdom Speed Report for AMP
182
 
183
-
184
  == Changelog ==
185
 
186
- = 0.9.97.19 (4th October 2018) =
187
- * Fixed: Tables overflow not working in swift theme #2392
188
- * Fixed: Null check added to fix null reference exception #2526
189
- * Fixed: Minor Bug related with menu
190
-
191
- = 0.9.97.18 (29th September 2018) =
192
- * Fixed: Minor Bug related with menu
193
-
194
- = 0.9.97.17 (28th September 2018) =
195
- * Added: Featured Slider "Tag" support #954
196
- * Added: Marfeel plugin is blocking Internal pages of AMP and rendering 503 error #2423
197
- * Fixed: Dropdown Menu arrows not working properly in Swift #2148
198
- * Fixed: Wrong implementation of load_plugin_textdomain function #2408
199
- * Fixed: Page Float to right and showing menu content when page scroll horizontally in iPhone device #2434
200
- * Fixed: Internal Link Option is not Working in beta #2443
201
- * Fixed: Missing conditional tag for get_the_tags() causing "Invalid argument supplied for foreach()" error #2456
202
- * Fixed: Need to make a space in meta information and published date is not getting translated #2411
203
- * Fixed: Meta og:title and description tag are Not completely Reflecting #2454
204
- * Fixed: Images are not aligned center when published with Gutenberg Editor #2462
205
- * Fixed: Anchor Tag is not working because there is a space in between link #2465
206
- * Fixed: Fix social shares icons #2467
207
- * Fixed: Debug errors in beta #2472
208
- * Fixed: homepage is getting blank when "Convert To WP" is enable only for posts #2493
209
- * Fixed: wrong amphtml URL generating for WPML #2573
210
-
211
- = 0.9.97.16 (19th September 2018) =
212
- * Added: 3 Types of Gallery designs #1968
213
- * Added: New Section to show 'change log' on Welcome Page #1753
214
- * Added: Allow HTML in footer section of translation panel in design 3 #1950
215
- * Added: Need to make the compatibility with The Voux theme #2263
216
- * Fixed: Special character "|" breaking the url in the twitter share #2264
217
- * Added: Read more button for post on blog page #2273
218
- * Fixed: Category Labels are Clickable on Swift Homepage even Archive support is off #2279
219
- * Fixed: Above Loop and Below Loop Sidebar Widget area is not connected with Swift theme #2280
220
- * Fixed: Aq_Resize.process() errors for images hosted on CDN #2285
221
- * Fixed: Convert to WP Option is displayed in Swift Theme, but not in Design 3. #2291
222
- * Fixed: Need to have only one text-domain in the string of the plugin #2292
223
- * Fixed: Bug in Facebook comments. #2300
224
- * Added: Beta Testing link in the Options panel #2302
225
- * Added: "X" button in the menu of D3 #2294
226
- * Fixed: AMP Take over is applying even on product when this option is enabled only for posts. #2304
227
- * Fixed: The Option Facebook App ID not necessary in the social icons of AMP panel when using Swift #2384
228
- * Fixed: Embeds not working in Archive Description #2402
229
- * Fixed: Spurious spaces in Footers #2521
230
- * Fixed: Additional spaces Pagination div on article posts #2522
231
-
232
- = 0.9.97.15 (13th September 2018) =
233
- * Fixed: Pagination is not working on date archive #2289
234
- * Added: Options to show Social Icons in different places in Swift #1722
235
- * Fixed: Localization string for "% days ago" not working for non-Latin languages #1491
236
- * Added: Social Share by Supsystic Compatibility #1509
237
- * Fixed: Duplicate h1 tags in Design One #1522
238
- * Added: 3 Appearance option for Related Posts in Swift theme #1545
239
- * Fixed: RTL not working with Footer properly #1655
240
- * Fixed: Proper implementation of the property of all in one SEO pro to avoid fatal error #2500
241
- * Fixed: Notice: Undefined index: extension in thirdparty-compatibility.php on line 401 - 406 #2496
242
- * Fixed: Wrong url in Non-Amp Version link on blog posts page and category archives #2424
243
- * Fixed: The Consent.php path is getting index in Webmaster tool #2518
244
- * Added: Option to add custom things in Instant Articles #1089
245
- * Added: Show/hide Instant Article on specific posts #1297
246
- * Added: Facebook Instant Articles (FBIA) Crawler Ingestion (ia:markup_url) tag #1474
247
- * Added: Facebook Instant Articles Meta Tag #1486
248
- * Added: Related posts for instant articles #1634
249
- * Added: Option to remove Author info from Instant Articles #1483
250
- * Added: Facebook Instant Articles in each Catagory #1524
251
- * Added: Custom Facebook Instant Articles Ad option #1475
252
- * Fixed: Pagination not working after changing the pagination base #1485
253
- * Added: Breadcrumb with tag #1305
254
- * Fixed: Enabled WordPress Comments by default #1501
255
-
256
- = 0.9.97.14 (4th September 2018) =
257
- * Added: Adobe Analytics Support #887
258
- * Fixed: Same Icons loading for some extensions #2172
259
- * Fixed: Removed extra spacing from "Back to top" text #2349
260
- * Fixed: Retina featured images support for Homepage and archive loop images #2334
261
- * Fixed: When WooCommerce Product Slider is Installed, the Picture of Icons are not loading #2325
262
- * Added: Customizr Theme Lazy Loading compatibility #2322
263
- * Fixed: "Save Module" button of AMP page Builder not displaying in OSX and in Safari #1943
264
- * Fixed: Sort Related Posts Randomly Not Working in Swift theme #2308
265
- * Added: Need to create a tutorial of How to Enter your Audience Network Placement ID of advertisement in the Instant Article #1723
266
- * Fixed: Retina Images option Improvement-II #2296
267
- * Fixed: Disable the look or check of redux framework #2293
268
- * Fixed: With Redux core plugin, AMP option panel design not loading #2258
269
- * Fixed: Issues with pagination #2253
270
- * Added: Thrive Architect Compatible #1575
271
- * Fixed: Notice Undefined variable categories_array #2486
272
- * Fixed: Need to add upscale parameter in-line related posts #2488
273
- * Fixed: Getting the warnings in error log due to global variable, not present #2395
274
- * Fixed: Google Analytic issue while setting up Run Installation wizard #2491
275
- * Added: Read more button AKA Content Sneak Peek feature for post #2246
276
- * Added: Showing related items/post in after nth paragraph #2246
277
-
278
- = 0.9.97.13 (28th August 2018) =
279
- * Fixed: Fatal error in `ampforwp_related_post_loop_query()`
280
-
281
- = 0.9.97.12 (27th August 2018) =
282
- * Fixed: Quote runs only in block post not on pages #2399
283
- * Added: Create a Sidebar option that can be used as global Sidebar #2388
284
- * Fixed: words are breaking and not readable #2441
285
- * Fixed: Text is breaking into next line while there is no space between the text in custom AMP Editor #2270
286
- * Fixed: IP Anonymization #2421
287
- * Added: Setka Editor Compatibility #2468
288
- * Fixed: In swift theme, when user ads the ad Above the Related Posts (Single Post); the content doesn't display #2311 and #2318
289
- * Added: Toggle controls are now accessible #1691
290
- * Added: Global Sidebar is now Connected with AMP Pagebuilder #2371
291
- * Fixed: #amp-user-notification1 Styling was loading even when disabled from option panel in swift #2400
292
- * Fixed: Remove the empty `@media{}` css generated by Pagebuilder #2473
293
- * Fixed: Blank Lines in HTML Source code #2445
294
- * Fixed: Optimize AMP pages on Google Lighthouse #2082
295
- * Fixed: RSS Feed is not working when AMP Takeover is enabled #2309
296
-
297
- = 0.9.97.11 (21th August 2018) =
298
- * Minor Update
299
-
300
- = 0.9.97.10 (18th August 2018) =
301
- * Fixed: Homepage build with AMP PageBuilder is displaying only when the checkbox of the Custom AMP editor is enabled #2350
302
- * Added: Created a new function to get the settings instead of calling it directly from global $redux_builder_amp everytime. `ampforwp_get_setting` created #2177
303
- * Fixed: Comments and share not loading on pages only in swift #2401
304
- * Fixed: Back to Top link not working in Swift Design #2404
305
- * Added: Ads Below the Author Area in Swift theme #2455
306
- * Fixed: AMP should remove spaces from GTM ID automatically #2413
307
- * Fixed: Some Posts are not displaying in Blog page even when AMP is enabled from Post settings #2375
308
- * Fixed: Wrong AMPHTML when using static page as blog using custom-code/pagebuilder from reading settings #2396
309
- * Added: Add paginations meta tags #2343
310
- * Fixed: Updated the code of AMP renders with ?q after the /amp #2361
311
- * Added: Add support for Relevanssi search #2307
312
- * Added: Show index/noindex label when enabling the options in SEO Settings #2290
313
- * Added: Add AMP consent in AMP Theme Framework #2440
314
- * Added: Created a component called `AMP-geo` so anyone can use it in thier AMP theme #2440
315
-
316
- = 0.9.97.9 (1st August 2018) =
317
- * Minor Improvements
318
-
319
- = 0.9.97.8 (24th July 2018) =
320
- * Fixed: AMP renders with ?q after the /amp #2361
321
- * Fixed: iThemes Sync can not connect to the site. #2380
322
- * Fixed: H1 to H6 styling is not reflecting in the Swift theme #2383
323
- * Fixed: Underline on Links function is not working. #2372
324
- * Fixed: WordPress Admin Color Scheme not applying #2390
325
- * Fixed: Breadcrumbs are not disabling when the sidebar template is selected #2376
326
- * Fixed: All the Images are Adding AMP at the End of their URL. #2391
327
-
328
- = 0.9.97.7 (18th July 2018) =
329
- * Fixed: PageBuilder not loading on frontpage #2360
330
- * Fixed: 500 error on somepages due to open wp_query by other plugins
331
- * Fixed: License key reupdating #2261
332
- * Fixed: AMP renders with ?q after the /amp #2361
333
-
334
- = 0.9.97.6 (14th July 2018) =
335
- * Fixed: Error and Warning on Structured Data for Logo. #2360
336
- * Fixed: Category Bulk tool breaking meta boxes #2335
337
-
338
- = 0.9.97.5 (11th July 2018) =
339
- * Fixed: Title disappearing in Design 1,2,3 when legacy pagebuilder is enabled #2341
340
- * Fixed: ld+json getting a broken when special characters are added in the image. #2346
341
- * Fixed: Hide by Category Breaking post metabox #2330
342
- * Fixed: Hiding excerpt when global $redux_builder_amp is empty #2330
343
- * Fixed: When Google Tag Manager is enabled, only Google Analytics should get disabled but not other analytics. #2340
344
-
345
- = 0.9.97.4 (09th July 2018) =
346
- * Fixed: Huge Performance upgrade in the way fetching the logo url #2317
347
- * Fixed: Fatal Error due to unable to modify values in Structured Data Object #2327
348
- * Fixed: Seperate option for Featured Image in pages in Swift theme #2328
349
- * Fixed: `<p>` tags disabling where not wanted #2330
350
- * Fixed: Fatal error in contact form module while ninja form or gravity form plugins are not activated #2310
351
- * Fixed: Woo Commerce Category page not working properly #2333
352
- * Fixed: Few issues related to amp-facebook-comments #2300
353
- * Fixed: Limit number of Tags and Category to 500 in Hide AMP-Bulk tools #2336
354
-
355
- = 0.9.97 (27th June 2018) =
356
- * For more details check out [the blog post](https://ampforwp.com/0-9-97-released-strengthening-of-foundation-89th-update/)
357
- * Fixed: Extraposition attribute left in CSS Design #2 #2119
358
- * Fixed: Non-AMP header link not working #2109
359
- * Added: Create an Ad Above the Post Content #2155
360
- * Fixed: "AGO" text was not translatable #2158
361
- * Added: Filter created `ampforwp_header_url` to modify logo url #2141
362
- * Fixed: Removing the text "amp" in footer view non-amp-link #2158
363
- * Added: Compatibility WP user Avatar plugin added #2011
364
- * Fixed: Design 2 - meta info producing a block of empty HTML #1969 #1954
365
- * Added: Pocket and Hatena Bookmark social share buttons Added #1652
366
- * Fixed: External Links are appended with "amp" at the end of the url in content. #2174
367
- * Fixed: Some Issues Found in Design #3 #2130
368
- * Fixed: ScoopVersion: 1.4 By boostdevelopers theme displaying the error only in the category #1683
369
- * Fixed: Page featured Image is not displaying in the Swift theme #2136
370
- * Fixed: Dropcap breaking the youtube embed code #2157
371
- * Fixed: Bulk hide by default option is requires Permalinks to be saved #2145
372
- * Fixed: Fully compatibility with muffin page builder #2180
373
- * Fixed: Incontent Related Post Issues #2078
374
- * Fixed: Search page should not have AMP version of the page and not in search result #2191
375
- * Added: Control added to modify Retina Images resolutions #2099
376
- * Added: Created an option to duplicate a page builder element #1986
377
- * Added: Image Caption is not displaying below the Image in design 1,2,3 #2101
378
- * Fixed: Post pagination not working properly in D1, D2 and D3 #2168 #2243
379
- * Fixed: Auto re-save permalink if the options in reading setting page get changed #2190
380
- * Fixed: Leave a comment not looking good in Swift theme #2150
381
- * Added: Social icons for pages. #2162
382
- * Added: Create an option to pull canonical from Yoast #2118
383
- * Added: Full Support for All in one SEO #1720
384
- * Fixed: Single with sidebar CSS should only load if that layout type is selected #2091
385
- * Fixed: Required Filed is not working in the Repeater in Page builder #2217
386
- * Fixed: alt in `<div>` causing validation errors. #2093
387
- * Added: Drop Down Menu Support in Swift Header Menu #2095
388
- * Added: Parallax Setting Added in PageBuilder #2095
389
- * Added: Multiple Layout Settings added in Feature Module in Page Builder #2095
390
- * Added: Add the option changing the sliding speed of slider in "Slider module" of AMP Page Builder #2218
391
- * Added: Created an option Related Post link in non amp #2201
392
- * Fixed: Removed Jannah LazyLoad on AMP Mode #2224
393
- * Fixed: Custom post types with custom taxonomy not working in AMP #2209
394
- * Fixed: frontpage and homepage not working properly AMP take over #2153 #2277
395
- * Added: Button field created in Feature module #2068
396
- * Added: Excerpt should also work on homepage and categories page #2176
397
- * Fixed: Options panel breaks in when RTL in WP Dashboard #2176
398
- * Fixed: Featured image from Custom fields in page builder Category module #2237
399
- * Added: Forms Module Support added in PageBuilder #2221
400
- * Fixed: Paginated AMP URL on the category are opening to 404-page #2233
401
- * Fixed: Ads not displaying properly in RTL #2227 #2138
402
- * Fixed: single quotation (') in text module breaking AMP page builder #1940
403
- * Added: Filter created to modify `ampforwp_loop_image_update` image arguments in components of AMP theme framework #2057
404
- * Added: Option to change the locale of Facebook comments #2127
405
- * Added: Search option in options panel #2088
406
- * Fixed: Accordion not working when the user enters some data in Description with HTML Tags #2088 #2097
407
- * Fixed: Internal links now working with ?amp=1 #2204
408
- * Fixed: UTM Parameters not working properly with AMP #2223
409
- * Fixed: Multiple Slider module of AMP Page builder not working #2090
410
- * Fixed: Hide AMP by categories option should hide by default in the backend of that specific post #2112
411
- * Added: IP Anonymization in Google analytics #2135
412
- * Fixed: Improvement in the styling of AMP option panel #2102
413
- * Added: Added new fonts control for Content in Single page #2122
414
- * Fixed: Legacy page builder button styling is not loading properly #2036
415
- * Added: Filter added so we can disable Comments on specific pages `ampforwp_comments_visibility` #2170
416
- * Fixed: Improvement in Excerpt on small screen option #2034
417
- * Added: Comments on Pages #2229
418
- * Fixed: Pagination not working for some websites #2241
419
- * Fixed: "Menu" option in Footer connected with Swift #2146
420
- * Added: Wistia Support #1875
421
- * Added: Add option in page builder to give the specific name to all modules #2251
422
- * Added: Compatibility with Muffin Builder #2137
423
- * Fixed: AMPforWP Option panel styles are overriding other theme's options panel if both use Redux Framework #2121
424
- * Fixed: AMPforWP Option panel styles are overriding other theme's options panel if both use Redux Framework #2121
425
- * Added: Render all the AMP Components added in Post Editor #2216 #2228
426
- * Fixed: "Gap" Module of ThemeCo breaking the AMP pages #2220
427
- * Added: Search widget compatibility #2143
428
- * Added: Advertisement Module created in AMP Pagebuilder #2131
429
- * Fixed: Performance issue with the function `ampforwp_get_comments_gravatar` #2234
430
- * Fixed: Empty the amp pages, when the Clearfy HTML compress is enabled #2110
431
- * Fixed: The attribute 'value' appearing in tag 'a' throwing the validation error #2262
432
- * Fixed: Versioning of Styles and Scripts of redux-core #2126
433
- * Added: Related Posts based on X days #2132
434
- * Fixed: Warning in custom-sanitizer.php #2173
435
- * Added: vuukle comment support #2075
436
- * Fixed: Facebook Comment should not appear on the Checkout page, Add to cart page, or shop page #2170
437
- * Added: SpotIM comment support #2075
438
- * Added: Additional Controls added in Design3 Featured slider #2222
439
- * Fixed: Username in AMP Option panel color was too light #2266
440
- * Added: Settings created to modify H1 to H6 #2059
441
- * Fixed: AMP_QUERY_VAR debug issue #2265
442
- * Added: Custom page template in AMP #1923
443
- * Fixed: Comments Button is not displaying in Design #3 #2163
444
- * Added: Ability to add Forms Shortcodes in footer Widgets #2226
445
- * Added: Option to add rel="nofollow" in AMP page builder button module #2239
446
- * Added: Background video option in amp page builder #2195
447
- * Fixed: Drop Down Menu Support in Swift Header Menu #2095
448
- * Fixed: Yoast Description not getting added in AMP #2159
449
- * Fixed: Improvement in styling of AMP option panel #2102
450
- * Fixed: Hide AMP Bulk Tools Improvements #1867
451
- * Added: Compatibility with the Relevanssi Plugin #1503
452
-
453
- = 0.9.96 (2nd June 2018) =
454
- * Added: Fully GDPR Compliance
455
- * Fixed: GTM not working
456
-
457
- = 0.9.86.1 (8th May 2018) =
458
- * A bug causing validation issues has been resolved.
459
-
460
- = 0.9.86 (3rd May 2018) =
461
- * For more detials check out [this blog post](https://ampforwp.com/0-9-86-released-getting-ready-for-future-87th-update/)
462
- * Added: GDPR Compliancy #2040
463
- * Added: Muffin Page Builder Compatibility #1455 #1893
464
- * Added: Thrive leads compatibility #2067
465
- * Fixed: Load structured markup json in Footer to improve performance #1945
466
- * Added: Font Size and Font Family Controls added in Content Presentation Module #1962
467
- * Added: Font Weight Control added in Text Module in PageBuilder #1962
468
- * Added: Other necessary controls added in Content Presentation Module #1962
469
- * Added: New Design called "Design 4" added in Content Presentation Module. #1962
470
- * Fixed: License Activation process connected with AMP extensions #1981
471
- * Added: Icon Selector control added in Button module in AMP Page Builder #1962
472
- * Added: Filter called `ampforwp_get_comments_gravatar` to modify Author Avatar Images #1949
473
- * Fixed: Validation error fixed by removing json+ld values to remove CDATA #1977
474
- * Added: Icon Adjustment Option is added in the Button Module #1962
475
- * Fixed: Debug Warnings fixed #1976
476
- * Fixed: If AMP support on post and page is disabled then mobile redirection was not working #1979
477
- * Fixed: Responsive element added in Image Module #1962
478
- * Fixed: Custom Post and Custom Taxonomies Archives not working in AMP #1957
479
- * Fixed: AMP take over is on and AMP support on the home page is disabled it was redirecting to some other pages #1994
480
- * Fixed: Design 1 and Design 2 shouldn't show 'social' tab #1996
481
- * Added: AMP WordPress Theme notice
482
- * Added: Rewrite Rules Added for WooCommerece #1957
483
- * Fixed: AMP Takeover blog search results giving blank page #1990
484
- * Fixed: Swift pagination markup is present even the page has no pagination #2000
485
- * Fixed: Pagination breaking on second page on Archives when Blog page is not set #1998
486
- * Fixed: Added proper Google API jump link #1966
487
- * Fixed: Advance Index and no-index controls did not had description #1978
488
- * Added: Filter added `amp_blacklisted_tags` in blacklist-sanitizer file
489
- * Added: Hyperlink for image module added #1989
490
- * Added: `ampforwp_get_frontpage_id` a common fucntion created to get post id for AMP frontpage #2025
491
- * Fixed: Comments controls were not working properly #1987
492
- * Fixed: Fatal Error after updating the plugin from 0.9.73 to 0.9.83 version #2017
493
- * Fixed: Filter created `ampforwp_modify_rel_url` to modify rel canonical URL #2012
494
- * Fixed: Remove structured data json if removed from AMP options panel
495
- * Fixed: amp widget appearing twice in design one #2008
496
- * Fixed: Gif in content + Lightbox feature throws validation issue. #2032
497
- * Added: New Features in the Page builder Modules #2029
498
- * Fixed: License Key was not working properly #2026
499
- * Fixed: Instagram comment view is getting cut off in Swift Theme #2002
500
- * Added: Icon module support added in Desgin 1, 2 & 3 #1997
501
- * Fixed: if GD or ImageMagick library is not present in the server then send the original image #2037 #2038
502
- * Fixed: Swift theme homepage (Non-AMP) image resizing issues in Mobile version #1992
503
- * Fixed: Header Element not working in Swift theme #1967
504
- * Fixed: Stop Loading of Latest post scripts on Homepage and Frontpage #2041
505
- * Added: Filter created `ampforwp_non_amp_links()` so users can have all the internal links non-amp #1973
506
- * Fixed: Sanitize the archive description in loop component #1974
507
- * Fixed: Double AMPHTML when FBIA Plugin is active #2043
508
- * Fixed: Image Div is loading even if the image is not present in Swift #2033
509
- * Fixed: Custom AMP editor is visible on pages (post type) even if the Page Support is off from amp options panel #2047
510
- * Fixed: When 'Structure Data for WP' plugin active, Schema type in Structure section should hide #2049
511
- * Fixed: Bugs in Video Module in AMP pagebuilder #2048
512
- * Added: Autoplay feature added in Video Module #2048
513
- * Fixed: Throwing error when Product Structured Data is selected #1975
514
- * Fixed: Advanced CSS is not loading because the files are with hosting path #2046
515
- * Fixed: Double Quotes breaking the html #2004
516
- * Removed: Blog option is removed from AMP Options panel and it is connected with Pages option Under Reading Settings #2027
517
- * Fixed: amphtml should not be created for 404 pages #2018
518
- * Added: 404 Template added, useful for AMP Takeover #2042
519
- * Fixed: Genesis meta titles are lost and not rendering correctly #2050
520
- * Fixed: Search blank on AMP Takeover #1990
521
- * Fixed: Remove Unused js files from Paginated Post Pages #2001
522
- * Fixed: Extra Space adding in H1 and other SEO tags #2054
523
- * Fixed: Undefined Index when called from robot #1960
524
- * Fixed: amp facebook comment Js not loading to the custom front page of the swift theme. #2053
525
- * Fixed: Tags label is not working properly when RTL Support on #1719
526
- * Fixed: View Non-AMP Version In the footer link has an error #2066
527
- * Fixed: Squirrly SEO is Adding the Javascript code in AMP #1696
528
- * Fixed: Translation option issue when using POT file method #1941
529
- * Fixed: amp-facebook-like extension is missing on Custom Frontpage #2061
530
- * Fixed: GTM option repositioned #2056
531
- * Fixed: Menu is appearing on left side instead of Right side when RTL support is ON for Design3 #1928
532
- * Fixed: Sidebar Bugs #1972
533
- * Added: Table Styling in Swift #1961
534
- * Fixed: Genesis index, follow options not being rendered #2071
535
- * Added: Filter created `ampforwp_robots_meta` to modify robots meta information #2071
536
- * Fixed: PHP Notices #2065
537
- * Added: Add a new hook `ampforwp_after_amp_menu` after the menu in all designs #2072
538
- * Added: New Look to Options panel #1823
539
- * Added: Retina Image Support added #1846
540
- * Fixed: Pagebuilder hrefs were stripped in hebrew language #2089
541
- * Fixed: Warning Fixed #2083
542
- * Fixed: Gallery module images not loading in Firefox #1980
543
- * Fixed: Pagebuilder Improvement #2024
544
-
545
- = 0.9.85.5 (21st April 2018) =
546
- * Added: Filter added to modify frontpage post id `ampforwp_modify_frontpage_id`
547
- * Added: Filter added to modify amp template directory `ampforwp_template_locate` #1982
548
- * Other minor bugs fixed
549
-
550
- = 0.9.85.3 (12th April 2018) =
551
- * Added: Custom Post type Archive Page support #1995
552
- * Fixed: AMP TakeOver redirection issues #1994
553
- * Fixed: Debug errors #1976
554
- * Fixed: Social Profile pages were hidden for Design 1 to 3 #1996
555
- * Fixed: Structured Data insertion was adding CData causing validation error #1999
556
-
557
- = 0.9.85.2 =
558
- * Minor Bugs fixed
559
-
560
- = 0.9.85.1 =
561
- * Minor Bugs fixed
562
-
563
- = 0.9.85 (3rd April 2018) =
564
- * For more detials check out [this blog post](https://ampforwp.com/0-9-85-released-stability-update-86th-update/)
565
- * Fixed: Fatal error: Allowed memory size on FrontPage #1865
566
- * Fixed: Proper Parameters for Pinterest Sharing #1853
567
- * Added: Extra settings added in Button Module
568
- * Added: Extra settings added in Text Module
569
- * Fixed: Proper Parameters for Pinterest Sharing
570
- * Fixed: Unwanted fields are removed form the Repeater in Button module
571
- * Added: Enable/disable option added Related Posts #1829
572
- * Fixed: Legacy PageBuilder option Repositioned #1851
573
- * Fixed: Display the img tag only if source is present #1869
574
- * Fixed: Huge design improvements in Swift theme #1818
575
- * Added: Hook for Between Related Post is Added #1874
576
- * Added: Blurb module text size and background color added
577
- * Fixed: Comments Pagination issues #1816
578
- * Added: Counter Module added
579
- * Fixed: Date 48 years ago #1864 #1876
580
- * Added: Ability to pass post id in amp_content() #1872
581
- * Fixed: Changed the way images we fetched in WooWidget #1847
582
- * Fixed: Changed the position of layout in Pagebuilder #1873
583
- * Added: Pricing Module
584
- * Fixed: Changed the position of layout in Pagebuilder #1873
585
- * Fixed: amp_aq_resizer was not able to process the outside url #1881
586
- * Fixed: Advanced Google Analytics improvements #1630 #1860
587
- * Added: Field Added For ON & OFF in Page builder #1870
588
- * Fixed: Two paginations in search pages in Swift theme #1855
589
- * Fixed: Extra Div if categories not available #1856
590
- * Fixed: removed debuged tags #1870
591
- * Fixed: Published date connected with AMP options Panel #1888
592
- * Added: Featured Image option in Swift #1889
593
- * Added: Separate Blog settings #1887
594
- * Fixed: single post ads should not load on pages #1896
595
- * Fixed: Ads should not load on FrontPage if PageBuilder is enabled #1885
596
- * Fixed: Background Image Support for the Columns #1871
597
- * Added: Blockquotes design for Swift #1894
598
- * Added: Co-Authors Plus compatibility #1895
599
- * Added: pagebuilder for custom post types #1884
600
- * Added: Border option is connected to options panel #1818
601
- * Added: Responsive AD unit support #1852
602
- * Added: Sub category arrow symbol is added in Swift theme #1818
603
- * Added: Search text color is connected to options panel #1818
604
- * Fixed: Removed notice when no posttype selected #1884
605
- * Added: Ability to overwrite page template the WordPress way like front-page.php and page-{id}.php #1902
606
- * Added: Ability to overwrite author page template the WordPress way like author.php and author author-name.php #1902
607
- * Added: Lightbox Support for the images #1892
608
- * Fixed: No mobile redirection when Dev mode is enabled #1907
609
- * Added: Option to hide Author name in Swift #1890
610
- * Fixed: Script facebook-comments should not load for Frontpage #1897
611
- * Added: amp-facebook comments for AMP2WP #1911
612
- * Added: Alt tag in all modules #1898
613
- * Added: Sanitizers in Footer and sidebar widget in Swift #1835
614
- * Added: Dropcap support #1900
615
- * Added: Proper styling for iframes and videos in Swift theme #1909
616
- * Fixed: Non-AMP link fixed for AMP Takeover #1916
617
- * Fixed: Swift connected with Breadcrumb option #1915
618
- * Added: Uninstall option created to completely remove AMPforWP data #1903
619
- * Fixed: Recipe Structured Data requires name attribute #1917
620
- * Fixed: No amphtml when It is hidden from Categories #1919
621
- * Fixed: Content is breaking when Inline Related Post option is enabled #1912
622
- * Fixed: Proper redirection setup for AMP Takeover #1913
623
- * Added: Social media profiles added in menu #1901
624
- * Fixed: No Ads should display on Frontpage or Posts if Pagebuilder is enabled #1885
625
- * Added: #1899 Proper conditions for amp-analytics script
626
- * Fixed: Turn off option not working by default fixed #1537
627
- * Fixed: BreadCrumbs Should not load when PageBuilder is enabled #1925
628
- * Fixed: Removed unwanted elements loading while pagebuilder is enabled #1929
629
- * Fixed: amp-web-push should not load on Homepage and Blog #1930
630
- * Added: SmartMag theme Compatibility #1905
631
- * Fixed: Template overriding not working in child theme #1920
632
- * Fixed: Horizontal scrolling in Swift #1844
633
- * Fixed: Home page title should not be visible in AMP takeover #1921
634
- * Added: Carousel Module Added #1937
635
- * Fixed: Comments pagination not working #1816
636
- * Fixed: Comments pagination not working #1816
637
- * Added: Glue html css compatibility #1932
638
- * Added: Data Caption Support on AMP Instagram Embed #1938
639
- * Added: Ability to pass {author_name} and {author_id} added in Advance Analytics #1936
640
- * Fixed: Scrollbar in Header area in Swift in firefox #1818
641
- * Added: Disqus iframe height adjustment option #1935
642
- * Fixed: Options panel conflict fixed with Mobius theme #1942
643
- * Fixed: Problem with Button in Mobile view in Swift #1926
644
- * Fixed: Removed canvas tag in AMP version causing validation errors #1880
645
- * Fixed: Getting Conflict with Facebook Button by BestWebSoft #1740
646
- * Added: Option to enter the "ID" on CTA button module #1931
647
- * Added: Option for open same window in CTA module of page builder #1866
648
- * Fixed: Logo fetch causing Huge performance issue #1679
649
- * Fixed: Blurb module's default values were not set #1952
650
- * Fixed: Allow script with application/ld+json #1958
651
-
652
- = 0.9.84 (14th March 2018) =
653
- * Added: Polylang Frontpage compatibility added #1779
654
- * Fixed: Proper link for Linkedin added #1820
655
- * Fixed: Incorrect function name was Added #1827
656
- * Fixed: Thumbnail resizing issue in Swift #1828
657
- * Fixed: Thumbnail issue in Loops of Design 3 #1714
658
- * Fixed: Hide post builder for Swift #1824
659
- * Fixed: To avoid warnings when there are no pages in WordPress #1810
660
- * Fixed: Condition for the Thumbnail for Swift #1733
661
- * Fixed: Proper Styling for footer for Swift #1733
662
- * Fixed: Line height issue and CSS editor not working in Swift #1821
663
- * Fixed: Renamed aq_resize to ampfrowp_aq_resize to avoid conflicts #1838
664
- * Fixed: Add the prefix to avoid conflicts #1817
665
- * Fixed: Added Custom format option in amp_date #1845
666
- * Fixed: Removed amp-img tag where blank SRC in Page builder #1843
667
- * Fixed: Pagebuilder modal max-height removed so it will become full width #1843
668
- * Added: An option for select target type in Button Module #1822
669
- * Fixed: Remove AMP category widget if swift is enabled #1790
670
- * Fixed: Filter added change mode type #1833
671
- * Added: Rewrite rule for .html blog page #1775
672
- * Fixed: Filter added change mode type #1833
673
- * Fixed: Swift Footer Widget Sanitizer Added #1800
674
- * Fixed: No OneSignal widget when PageBuilder is enabled #1840
675
- * Fixed: span tag added around the pagination text #1834
676
- * Added: Page specific option to add script/html and styles in page builder #1831
677
- * Fixed: noindex,nofollow in AMP when Dev mode is enabled #1839
678
- * Added: Jarida theme compatibility added #1842
679
- * Fixed: noindex,nofollow in AMP when Dev mode is enabled #1839
680
- * Fixed: Replace value attribute only from html tags. Otherwise it is removing value from * shortcodes which is breaking the whole page. #1738
681
- * Added: Underline option for content links added #1808
682
- * Added: Page specific option to add RTL in page builder #1858
683
- * Added: Converts AMP ads to normal so ads show when takeover is enabled in Normal Mode #1724
684
- * Added: Converts AMP Analytics to normal so Analytics works when takeover is enabled in Normal Mode #1724
685
- * Fixed: Phone icon proper alignment in Design3 #1730
686
- * Added: ADS for WP activation box in Extensions tab
687
- * Added: New design field added #1861
688
-
689
- = 0.9.83.1 (8th March 2018) =
690
- * Fixed: Pagebuilder contents not shows on custom home page #1794
691
- * Added: Header hook added `ampforwp_advance_header_layout_options`
692
- * Fixed: Load admin files only in admin pages #1799
693
- * Fixed: Conflict with WP bakery pagebuilder #1783
694
- * Fixed: Slide in Menu break in RTL mode #1825
695
- * Fixed: Validation issue in loops due to empty attributes #1795
696
- * Fixed: Featrued Image connected Properly with Swift theme #1733
697
- * Fixed: Changed the disqus.php to disqus.html to pass authentication #1788
698
- * Added: CSS styling for Loop on shop page #1803
699
- * Fixed: Facebook comments not work in swift #1789
700
- * Fixed: Style AMP Category module in Footer swift #1790
701
- * Fixed: Load aq_resizer only in AMP #1805
702
- * Fixed: Proper markup for Pinterest in Design3 and Swift #1793
703
- * Fixed: Proper url for vk
704
-
705
- = 0.9.83 (03rd March 2018) =
706
- * Added: Ability to add amp-carousel and amp-selector directly into WYSIWYG Editor #1588
707
- * Fixed: Debug error caused by Playbuzz Sanitizer #1674
708
- * Added: Show default gravatar for comments #1758
709
- * Fixed: Implement Swift Thumbnail Regeneration in all the designs #1709
710
- * Fixed: To avoid debug error in swift
711
- * Fixed: Translation improved for some strings #1678
712
- * Fixed: Stop AMP takeover for Feed pages #1767
713
- * Fixed: Menu issues In Design 1 & Design 2 after changing from AMP-Sidebar #1565
714
- * Fixed: AMP Options panel Not Working After Update (0.9.82.1) version #1761
715
- * Fixed: Move the label to the top [UX improvement] #1746
716
- * Fixed: Error with Vue #1745
717
- * Added: Video Module added in AMP Page Builder #1750
718
- * Fixed: Sidebar menu is not scrollable swift theme #1769
719
- * Fixed: View Non-AMP should be usertrailingslashit #1772
720
- * Fixed: Proper structured data for Blogpage #1660
721
- * Fixed: Legacy Page Builder not working after the update #1773
722
- * Fixed: Content blank when only image in content #1778
723
- * Fixed: Comment ID display issue fixed #1758
724
- * Fixed: PHP Warning: A non-numeric value encountered in components/logo/logo.php on line 52 #1764
725
- * Fixed: Yummly support added in Swift #1708
726
- * Fixed: Demo Link updated #1781
727
- * Fixed: CSS is not loading in Swift Theme #1780
728
- * Added: Ability to add Advertisement or Sponsored label under ads #1710
729
- * Fixed: Featured images distortion in related posts #1684
730
- * Fixed: Implement Swift Thumbnail Regeneration in all the designs #1709
731
- * Fixed: noarchive instead of nofollow in Archive pages #1693
732
- * Fixed: Internal links of tags are showing “/amp” after changing the end point to “?amp” in design 2 #1752
733
- * Fixed: line height is added for the logo in Swift design
734
- * Added: Class for Custom Frontpage #1787
735
- * Fixed: Recent post enable disable for Swift theme #1784
736
- * Fixed: Connect Show/Hide AMP option with AMP takeover#1786
737
- * Fixed: Added sanitizer to footer Widget #1756
738
-
739
- = 0.9.82.1 (18th February 2018) =
740
- * Selector code reverted due to it's effect on carousel
741
-
742
- = 0.9.82 (18th February 2018) =
743
- * View more details on https://ampforwp.com/0-9-82-released-stability-update-82nd-update/
744
- * Logo Resizing calculation by Pixels and resizing bug solved.
745
- * Update Notification in the Admin panel will only appear in the AMP options panel. So it will not annoy you anymore.
746
- * Glue underline is applying for some reason
747
- * Fatal error after 0.9.81 fixed
748
- * Facebook comments loading twice on swift
749
- * PHP Notice: Undefined variable: post_author_name
750
- * Pagebuilder fix in version 0.9.81 Compatibility with Yoast and other plugins #1749
751
- * Home loop modifier option added. Allows you to exclude the categories from the loop or include the Custom Post type in the homepage loop.
752
- * amphtml Conflict with Instant Article for Facebook resolved
753
- * /amp folder in the theme is applying changes in plugin, which causing a bug, but it’s been fixed
754
- * Backward Compatibility for AMP Preview
755
- * SEO Section Improvements
756
- * Wrong comments count on AMP pages
757
- * AMP Allow selector in the The Content. You can add tabs and AMP components directly into the loop.
758
- * If we turn off the Homepage Support then Blog is turned off as well, solved.
759
- * Post Pagination have two options like “Number of pages” and Previous & Next.
760
- * Removed the dot from the one Signal Service worker URL if the subdomain isn’t added (Causes Validation issues.)
761
- * Extra Space due to empty divs in Design 3
762
- * Remove alt from a tag in the AMP version caused many validation issues.
763
-
764
-
765
- = 0.9.81 (15th February 2018) =
766
- * Edge case fatal error on features.php fixed
767
- * Admin dashboard messup CSS fix #1731
768
- * Custom CSS Output added in Swift
769
-
770
- = 0.9.80 (15th February 2018) =
771
- * View More details on the [blog post](https://ampforwp.com/introducing-swift/)
772
- * AMP Page Builder 3.0: The AMP Page Builder is a lightweight and much stable than ever and works flawlessly! [Read More](https://ampforwp.com/tutorials/article/amp-page-builder-installation/)
773
- * Swift: The New Default Theme, which you can select from the design section of the Page builder.
774
- * A way to create a Child Theme for AMP [read more](https://ampforwp.com/tutorials/article/child-theme-amp/)
775
- * Make AMP & Non-AMP Same: We have an amazing new option called AMP to WP which will generate the WordPress version of the AMP design which will be viewed on the canonical version of the website.
776
- * AMP Takeover: You can deliver a fully AMP compatible website with this option. It will basically take over the non-amp version and deliver an AMP version to your desktop and mobile users, on WordPress & AMP version. That’s why it was called AMP Takeover
777
- * Logo Resizing made easy
778
- * Typography Options
779
- * 3 Headers design in swift theme
780
- * Error while sharing the image on Pinterest #1699
781
- * Homepage support was not working ( when page support is off ) #1695
782
- * Custom Permalinks rewrite issue solved #1689
783
- * Custom post type was appearing two types #1688
784
- * Theia Post Slider plugin incompatibility with post pagination fixed #1677
785
- * Link to the categories in loop of Design 3 #1632
786
- * amphtml was not working when plain permalink selected along with static page as homepage #1614
787
- * AFS Analytics Integration added #1605
788
- * Removed the blank spaces from analytics id field to deliver a good UX. #1599
789
- * ?amp endpoint feature added #1561
790
- * Ability to remove the excerpt and image from related post #1510
791
- * Thumbnails on-the-fly generation added for better control over the design.
792
-
793
-
794
- = 0.9.74 (23rd January 2018) =
795
- * View More details on the [blog post](https://ampforwp.com/0-9-74-released-stability-update-79th-update/)
796
- * Fixed: Push Notifications button alligned in center #1500
797
- * Added: Meta robots tag support from Yoast #1563
798
- * Added: Option to Disable wptexturize/smart-quotes Support #1458
799
- * Fixed: Changed the label id to avoid conflict with Advanced AMP Ads #1591
800
- * Fixed: esc_attr causing validation issues with single and double quotes #1616
801
- * Fixed: Image stretching problem resolved when "Featured Image from the content" was set #1580 #1582
802
- * Added: Create Template by Custom taxonomy name like product-jeans.php in AMP Theme FrameWork #1594
803
- * Added: Custom Post type support added in the Core #1612
804
- * Fixed: custom-amp-content.php cleaned with PHPCS #1497
805
- * Added: Basic Product(WooCommerce) support added #992 #1276 for full WooCommerce Support please check this [Extension](https://ampforwp.com/woocommerce/#utm_source=readme-log&utm_medium=0.9.74-readme&utm_campaign=AMP%20Plugin)
806
- * Added: Proper fallback support added if the current active AMP theme is not available #1624
807
- * Fixed: Resolved debug errors #1622
808
- * Added: All in One SEO compatibility #1557
809
- * Fixed: Load AMP Styling only on AMP pages #1441
810
- * Added: 7 New Social Media Integrations added (Reddit, Tumblr, Telegram, Digg, StumbleUpon, Wechat, Viber) #1265
811
- * Fixed: itemprop="url" was adding in non-amp #1626
812
- * Fixed: SiteOrigin Pagebuilder compatibility with Custom Frontpage #1592 #1593
813
- * Added: MediaAce lazy load compatibility of Bibmer Theme #1472
814
- * Fixed: Content Links plugin was causing validation errors #1569
815
- * Added: Filter added called get_content_from_dom to modify the output in AMP function #1462
816
- * Added: amp_breadcrumb component added in AMP Theme Framework #1636
817
- * Fixed: Sidebar Styling and proper sanitizer updated
818
- * Added: amp_author_meta component added in AMP Theme Framework #1641
819
- * Fixed: amp_post_pagination component improvement in AMP Theme Framework
820
- * Added: Ability to add link classes in amp_post_pagination in AMP Theme Framework
821
- * Fixed: amp_author_meta image code improvement in AMP Theme Framework
822
-
823
- = 0.9.73 (15th January 2018) =
824
- * View More details on the [blog post](https://ampforwp.com/0-9-73-released-stability-update-78th-update/)
825
- * Added: Instagram Sanitizer added to process Instagram Embeds inside the BlockQuotes #1581
826
- * Added: Option Created to Enable/Disable rel="nofollow" for View Non-AMP link #1572
827
- * Fixed: Custom AMP Content was not working with Elementor Pagbuilder #1495
828
- * Fixed: ampforwp_is_front_page() is not working in the newspaper theme #1583
829
- * Added: Allow people to use multiple Analytics on AMP #1124
830
- * Fixed: 'https' error with PlayBuzz Embeds #1481
831
- * Added: Option to show last modified date instead of Published date #1496
832
- * Fixed: Add proper permission for ampforwptourinstaller page
833
- * Fixed: Debug warnings #1586 and #1459
834
- * Fixed: A lot of Security Fixes has been done #1497
835
- * Fixed: Removed lot of unused code #1497
836
- * Added: AMP skip for checkout page #1443
837
- * Added: Show the list of Child pages at the end in Parent Page with on/off #1551
838
- * Fixed: Properly strip shortcodes fom Structured data description #1512
839
-
840
- = 0.9.72 (6th January 2018, Happy New Year) =
841
- * View More details on https://ampforwp.com/0-9-72-released-stability-update-77th-update
842
- * Related Posts Image stretching in Design 3 AMP theme Framework #1482
843
- * RTL option must be integrated into AMP theme Framework #1562
844
- * `DOMDocument::loadHTML():` Attribute itemprop redefined warning fixed #1539
845
- * Created an option to add Author bio article in Facebook Instant Article #1521
846
- * Options to add push notification button above and below the content #1571
847
- * Copy the Content button for Custom Post types #1532
848
- * Alexa Metrics Compatibility added #1536
849
- * Logo styling added with amp_logo. So styling can work with AMP Theme Framework. #1520
850
- * Content parsing login improved, so it will not through any warnings if the content has only 1 paragraph. #1523
851
- * Debug Warnings removed #1564
852
- * Caption in the Gallery creating validation errors Fixed. #1549
853
- * Tables Link color should be as same as the link of the body #1559
854
- * Separate options for In-Content related posts #1546
855
- * WebPage Schema Type added in Structured Data options #1558
856
- * Fatal Error fixed with `mb_detect_encoding()` after enabling the minify option #1494
857
- * Content blank or fatal errors due to itemscope and itemtype, fixed. #1570
858
- * Performance improved. Due to `_transient__redux_activation_redirect` transient. #1526
859
-
860
- = 0.9.71 (1st December 2017) =
861
- * Design 2 Post Titles issue fixed
862
- * Instant Articles validation issue fixed.
863
-
864
- = 0.9.70 (30th November 2017) =
865
- * View More details on https://ampforwp.com/0-9-70-released-stability-update-76th-update/
866
- * Image alt tags are empty which caused issues. #1154 (thanks to @liagua)
867
- * ALT and IMG tags are in one line #1442
868
- * Updated the permalink for post view in admin area #1318
869
- * aria-current causing validation issues #1427
870
- * Aligning Captions in the Bottom in Gallery #1428
871
- * Logo’s height & width should dynamically come from the logo. This was a great UX improvement in my opinion. The logo would good regardless of the kind of image you upload. #1429
872
- * After 0.9.69.1 update – Call to undefined function mb_convert_encoding #1447
873
- * Featured image options now also reflect the structured data #1430
874
- * Blur & Stretching issues of Design 3 thumbnails are now fixed. They’re crisp and clear than ever! #1227
875
- * Related posts are showing on single even when turned off #1434
876
- * Show Related posts CSS only when it is selected #1356
877
- * Author image now displays on author pages #1426
878
- * Category base removal in AMP from url option is only working on the first page #1418
879
- * Bug fixed: PHP Warning DOMDocument Empty string supplied as input #1449
880
- * Video support added in Instant Articles #1300
881
- * Read more tag in Instant articles issue fixed #1415
882
- * Amp carousel issues fixed #1446 #1456
883
- * Compatibilty with Envira Gallery Lazy Loading #1432
884
- * Inline Related Posts in AMP Theme Framework #1457
885
- * Different number of in-content related post and related posts at the footer #1448
886
- * FooGallery update broke all the AMP compatibility, but we fixed it from our side so that user’s gallery work perfectly #1424
887
- * WPBakery Page Builder Conflict solved #1419
888
- * Goodlife theme Lazy Load compatibility added #1416
889
- * AMP-Facebook-Like Was found but unused Validation Error fixed. #1463
890
- * Playbuzz not displaying if added with https: #1466
891
- * Options Panel labels renamed for better understanding.
892
-
893
-
894
- = 0.9.69 (20th November 2017) =
895
- * View More details on https://ampforwp.com/0-9-69-released-stability-update-75th-update/
896
- * One Signal Push Notifications bug fixed! #1404
897
- * AMP theme framework Related posts extended so that it can be used as a loop format #1406
898
- * Facebook like Button improvements #1405
899
- * Add layout responsive tag to image module in page builder #1373
900
- * Strip the shortcodes from Structure data area #1389
901
- * Test HTTP API Call From admin panel by redux #1391
902
- * Meta description tag in normal site Unicode character is different from AMP site unicode character. #1369
903
- * Updated the check for ampforwp_is_amp_endpoint this should fix the issue #1372
904
- * Updated the URL for design 3 so it can work with plain permalink #1318
905
- * Updated the option Featured Image from The Content #1367
906
- * If “Featured Image From The Content is enabled and Duplicate Featured Image” is disable it will remove all the duplicate images from the content. #1375
907
- * Date Format under Homepage improvements #1408
908
- * Warnings due to inline related posts in Homepage #1413
909
- * Plain Permalinks Support improved. #1318
910
- * Allow Homepage title of Bread Crumbs feature to be changed from Translation Panel #1414
911
- * Debug Errors in AMP Theme Framework #1403
912
- * Unnecessary loading of Merriweather fixed, it will only load in the Design 1.
913
- * Enter Phone Number is not Appearing when switch to Call now button #1425
914
- * Need excerpt below the title, above the meta #1399
915
- * Remove the Separator piple symbol from the footer when “Back to Top link” is off #1417
916
- * Display Child or subcategories on Category pages. #1385
917
- * Add Caption in the Gallery Image feature conflicting with Gallery widget #1407
918
- * Youtube Shortcode embed with &rel=0 support #1378
919
- * Filter for Excerpt custom text in the AMP options #1411
920
- * WPML Multilingual CMS plugin flags compatibility #1270
921
- * Compatibility with Tasty Recipes plugin and other page builders with amp page builder #1431
922
-
923
-
924
- = 0.9.68 (12th November 2017) =
925
- * View More details on https://ampforwp.com/0-9-68-released-stability-update-74th-update/
926
- * ADs are Optimize For Viewability, meaning it will try to load faster than the original AMP AD loading strategy.
927
- * Content was disappearing issue was resolved #1392
928
- * Featured Image from The Content option is connected to related post #1339
929
- * Fix amp-web-push helper iframe configuration URL #1387
930
- * Facebook Like button added to AMP #1327
931
- * WPML support for AMP Improvement #1285
932
- * Debug Errors fixed #1366
933
- * Setting ad density for Facebook Instant Articles ads #1287
934
- * Showing the number of comments in Single #1341
935
- * Styling added to the sitewide ads and made sure that they are in the center. #1343
936
- * One Signal buttons Translation added #1383
937
- * Article type added to Structured data #1344 #1354
938
- * The issue with the amp-carousel when RTL was enabled #1358
939
- * amp-carousel with images of different sizes #1358
940
- * a bug where Img is getting converted to amp-img if there's no height or width. which causing validation issue and image is not visible fixed.
941
- * Instant Article should have a default value for number of posts, it was causing the memory issue with alot of posts #1390
942
- * Notice if a post has no author data #1338
943
- * Added a new redux extension select field in redux framework #1349
944
- * Issues with galleries as well as gallery captions #1363
945
- * Added a hook for adding anything in between the loops #1396
946
- * Hide meta boxes as per the user level types #1340
947
- * A Switch between the Date formats #1384
948
- * Fix: Jannah theme lazy load issue #1362
949
- * Issues with galleries as well as gallery captions #1363
950
- * Create Dynamic url of amp according to the permalink structure #1318
951
- * Minor code performance improvement.
952
- * Archive titles in Design 3 frontend issue
953
-
954
- = 0.9.67.0 (6th November 2017) =
955
- * View more details on https://ampforwp.com/one-signal-push-notifications-for-amp/
956
- * OneSignal Push Notifications integrated #807
957
- * Vimeo embed support added
958
- * SoundCloud embed support added
959
- * Pinterest embed support added
960
- * PlayBuzz embed support added
961
- * DailyMotion embed support added
962
- * Fix: Handle issues with data uri images in CSS #1033
963
- * Fix attribute when adding AMP Mustache lib #1033
964
- * Fix: Output CSS for feature image #1033
965
- * An option added for users who don't want to receive update notifications #1342
966
- * Structured data nav improvement
967
- * Sitenavigationelement has been implemented correctly for footer menu. #1345
968
- * Style sanitization for Menu Items #1359
969
- * Polylang flags support for menu  #1360
970
- * Mobile Redirection issues fixed #1173
971
- * Jetpack fatal error fixed #1355
972
- * AMP Page Builder requires a button to be clicked, so the scripts are not running on the runtime making it easy on the edit screen page and avoid the possible script conflict.
973
- * Needs proper CTA Bar's styling. #1361
974
- * Debug errors on archive pages #1353
975
- * Preview shall only be loaded on click rather than in background #1331
976
- * ampforwp_is_home() function code improved
977
- * making sure scripts and styling is properly adding when sanitizing the sidebar #868
978
- * All the backend css and js should be versioned, so it's not cached. #1335
979
-
980
- = 0.9.66.1 (30th October 2017) =
981
- * Fatal error if has version less than WP 4.8 fixed
982
- * More Minor Validation errors fixed
983
- * Odnoklassniki sharing button is not working #1337
984
-
985
- = 0.9.66.0 (29th October 2017) =
986
- * View more details on https://ampforwp.com/0-9-66-released-bug-squashing-oct-2017-72nd-update/
987
- * Design 3 & Design 1 are optimised with 90+ Google PageSpeed Score on Mobile and 95+ in desktop performance #1273
988
- * Featured Image from the content for blog and homepage #1295
989
- * Category Module for AMP Page builder added #888
990
- * Don't load unused CSS selectors. All the CSS is conditionally loading, to decrease the number of CSS loaded per page and increased in performance #1292
991
- * Twitter Video embed code support added in AMP #1307
992
- * Video Posting Structured data #1293
993
- * Navigation menus are now Schema compatible for better Structured data integration #1229
994
- * Yoast checking conditions for Structured Data Improved #1293
995
- * Added "back to Top" in design 3 #959
996
- * Proper blog check and author for custom frontpage #1260 (Made some changes to check the blog properly and also added the author details for Custom Frontpage)
997
- * AMP not working on password-protected pages #1192
998
- * Debug errors reported by the user #1284 and few more we found internally
999
- * Inline Style Sanitizer for Comments to avoid any validation issues #1193
1000
- * Next/Previous links removed from pages #1268 props @Frenchomatic
1001
- * WPML Multilingual CMS plugin flags compatibility added #1270
1002
- * Image sanitizer added for the Sidebar #1270
1003
- * Added AMP Components the correct way. Added amp-gist, amp-social-share. #336
1004
- * amp-video script added - Which decreases the non-critical validation issues #991
1005
- * Arrows in Design 3 pagination #1000
1006
- * Author page links in Single #1282
1007
- * Added previous open state of option panel and show again when search clean #1238
1008
- * Odnoklassniki Social Sharing Support for AMP (with target blank for better bounce rate) #1230
1009
- * GIF or animated images resize problem fixed #1281
1010
- * In Design1, Header Background & Link Color have same option #1249
1011
- * FB Pixel for AMP added #1231
1012
- * Structured Data Type option for AMPed Custom Post types only #1259
1013
- * Attribute ‘readability in the tag ‘div’ removed - this decreases the validation issues #1306
1014
- * AMP Theme Framework Improvements: loop, author, related_post, Add Author support #1311
1015
- * Commentator's Avatar in the comments section #1132
1016
- * Remove 'Welcome to AMP' from Dashboard sub-menu and moved to the options area to decrease the annoyance and increase the user happiness #902
1017
- * Option to Sort the Random Order of Related Posts to increase the audience engagement (Default is 'ID', on enabling the option it will change to 'rand') #1250
1018
- *  View AMP on Admin Bar for the respected page/post If enable. #1236
1019
- * google maps iframe – link to larger map #1099
1020
- * Comments now jumping due to the slash at the end #1309
1021
- * Page Builder causes Incompatibility with the Divi theme (We restructured the Text Module for Page builder for better compatibility and UX) #1162
1022
- * Inline Style Sanitizer for Comments added. Less Critical Validation issues and Better Presentation #1193
1023
- * WPML amp-html error fixed #1285
1024
- * Radio button not working for Show View more Button" #1018
1025
- * Added registered handle for tinymcePointer localize data #1301
1026
- * Date in the Design 2 should not be hidden in mobile version #1315
1027
- * Page builder not working on homepage(Selected as front page) #1316
1028
- * Instant articles number of posts option #1271 (Removed some unused code as well, it will rendered all posts if none is enter in the options)
1029
- * Auto flush on save for FBIA to improve the UX.
1030
- * Plain Permalinks Support improved. #1318
1031
- * Tables support added to FB Instant Articles #1266
1032
- * Demo link added in the Theme selector option #1248
1033
- * Remove invalid attributes from multiple tags which reduces critical validation errors and validates pages.
1034
- * AMP makes a problem in archive page label, when it is active in non-amp version #1304
1035
- * placeholder-icon.png is 404 fixed #1310
1036
- * Category & Tags switches for Single added. #1055
1037
- * Copy Content (Custom AMP Editor) Option Not showing with Page Builder of SiteOrigin issue fixed #1280
1038
- * Improving UX with: when AMP support is off for a specific post type then all the AMP related metaboxes should be removed #1289
1039
- * Options Panel Options rearranged, labels rewritten, descriptions repositioned for better User interaction [commit]
1040
-
1041
- = 0.9.65.2 (25th October 2017) =
1042
- * TypeWatch is not a function #1299
1043
- * Error with BackupBuddy fixed #1303
1044
-
1045
- = 0.9.65.1 (24th October 2017) =
1046
- * AMP Minifcation Issues fixed
1047
-
1048
- = 0.9.65 (22nd October 2017) =
1049
- * View more details on https://ampforwp.com/new/
1050
- * Favicon for AMP #1039
1051
- * AMP Minification option added with Performance Tab in Options #1286
1052
- * Post support is turned off then Meta box should also be removed #1253
1053
- * Excerpt Length feature in Design two and Three #1122
1054
- * Test Contact form plugins and their settings in the options panel #1121
1055
- * Mobile preview in Edit Screen #1082
1056
- * Search feature for Options Panel #1238
1057
- * WordPress Social Share Buttons Validation Issues #1272
1058
- * itemtype attribute is striping in the ul tag #1210
1059
- * Debug Error in Breadcrumb 0.9.64 #1267
1060
- * Disable AMP linking at Wordpress Search Page #969
1061
- * Featured Image is missing #1071
1062
- * Removed ampforwp_plugin_activation_notice #1034
1063
- * Add VK (Vkontakte) Sharing Button #1187
1064
- * Grab the first image instead of post thumbnail for featured image #1189
1065
- * AMP theme framework core changes #1274
1066
- * Grab the first image instead of post thumbnail for featured image #1189
1067
- * Create a Switch on Top of Page Builder #1279
1068
- * Inline Related Posts added that helps you with improving bounce rate #1078
1069
- * Caption Support in Image Gallery Carousel #1172 #1136
1070
- * Instant Articles feed shows sticky posts on top #945
1071
- * Added search check, to fix debug notice
1072
- * Option to hide date from Design 1 & Design 3 Homepage Loop #1264
1073
- * UI labels improvements in the Options panel
1074
- * Sorting out design #2 – static front page #1175
1075
-
1076
- = 0.9.64 (15th October 2017) =
1077
- * View more details on https://ampforwp.com/new/
1078
- * Structured Data Type option added. You can now change the structured data format for Posts, Pages and Custom post types #323
1079
- * When comments plugin activate, Comments section should remove. #1093
1080
- * Notification causes a validation error. #1147
1081
- * CSS !important need sanitization #1225 - This will help us to validate tens of thousands of pages.
1082
- * Strange spaces when using Sassy Social Share #1185
1083
- * Remote CDN use? Let's host it? #549
1084
- * Typo fix for Linkedin Profile Page URL section #905 [Thanks to Prayag @pra85]
1085
- * Replace fastimage with fasterimage for PHP 5.4+ #1191
1086
- * Debug Errors Post 0.9.63 #1219
1087
- * Ad5 code injected twice #1116
1088
- * Homepage Support must be Off when we turn Off Homepage Support. #738
1089
- * Add custom class in post pagination for styling #1100
1090
- * Removed the Lazy Loading issue of Schema Theme #1170
1091
- * H1 tag for archive titles (Commit) #1155
1092
- * Alt tag for the Logo #1155
1093
- * Design 3 Menu RTL issue fixed #1106
1094
- * Ability to add dynamic classes in body tag #1237
1095
- * Warnings fixed on 404 page #1243
1096
- * Properly structured data for Homepage, Custom Frontpage and Blog #1155 #1242
1097
- * Option added to Enable/Disable categories and Tags links from Single #1155
1098
- * Fatal error after 0.9.63 fixed #1220
1099
- * Debug Error due to vendor AMP #1213
1100
- * PHP warning on line 147 after 0.9.63 #1241
1101
-
1102
- = 0.9.63 (8th October 2017) =
1103
- * View more details on https://ampforwp.com/new/
1104
- * Category and Tag Base Remover as core features #1079
1105
- * Hide AMP on Posts option added #935
1106
- * Installation Setup Screen Added for new users
1107
- * Validation for the session in PHP #1158. PR by Bryan Contreras @bryan3561
1108
- * All the amp pages should work perfect with Plain Permalink settings #488
1109
- * WYSIWYG TinyMCE editor added for the Text Module in AMP Page Builder #1205
1110
- * WPML Static Front Page Support for title and description with Yoast. #1143
1111
- * Row Settings area added for AMP Page Builder #1148
1112
- * xlink attribute causes Validation Issues #1149
1113
- * Posts with no images on Archive pages are squeezed to 65% #1058
1114
- * Body Class to target specific pages #1123
1115
- * Option to enable/disable Breadcrumb #1129
1116
- * Debug errors due to Breadcrumbs fixed #1109 #1130 #966
1117
- * Visit AMP option added below the View Site in Dashboard. #1076
1118
- * Many Debug errors fixed #1109
1119
- * Textarea for body tag which will help people add AMP Auto Ads #1064
1120
- * Structured data improvements #1048 #1044 #1085 #1118
1121
- * Twitter share URL based on users choice, you can allow people to share pretty links and short links. #1097
1122
- * Author Avatar removed code fixed which has been displayed in the div "amp-wp-meta amp-wp-byline". #1087
1123
- * Only one figure element is allowed in the article header FB Instant Articles #1127 & #1157
1124
- * Image alt tags are empty and cause issues fixed. #1154
1125
- * Button to copy the content into Custom AMP Editor #783
1126
- * Rename AMP loop widget areas or add proper descriptions #1045
1127
- * Trailing slash issue #1095
1128
- * Related Posts by Post type featured added #1141
1129
- * Ultimate Social Media Icons plugin causes validation issues fixed #1135
1130
- * Adding proper path for functions.php, it was causing strange fatal errors and irregular white screen of death fixed  #1144
1131
- * A smooth way to migrate from other AMP plugins to AMPforWP #1051
1132
- * Alert added on AMP by Automattic installation. #1180
1133
- * Insertion of strange spaces around H1 titles #1069
1134
- * AMP Page Builder and HTTPS #1164
1135
- * You can display comments from more than one vendor such as displaying WP & FB Comments #1150
1136
- * Rename AMP loop widget areas or add proper descriptions #1045
1137
- * FrontPage featured image with srcset #1063
1138
- * An option for Showing featured image from custom field #1098
1139
- * Added the Custom Front Page Title From Yoast SEO #1163
1140
- * Commenting breaks SSI directives causes to display error #1179
1141
- * rel canonical appears more than once in search pages #1195
1142
- * Dev mode in AMP #1083
1143
- * Social Sticky Icons Improvements #1061
1144
- * Grand-Child support added in Design 3 #1152
1145
- * amp-accordion non-critical error in Design 3 & CSS improvements fixed #1152
1146
- * Incorrect @id for mainentity #1080
1147
- * Hide AMP by specific Categories tweaked for performance. Thanks to Joshua Eichorn @jeichorn CTO at Page.ly #1133 - Huge Thanks!
1148
- * amp-auto-ads for sites with RTL support ON #1176
1149
- * Redirected the Google forms to our contact page so that we can take each and every query and answer every person. #1201
1150
- * ui-state-highlight class was conflicting with ACF date picker fixed #1199
1151
- * Responsify WP Lazy loading causes blank image (Compatibility) #1131
1152
- * amp-carousel scripts loading on the second page fixed in Design 3
1153
- * Show Design screenshot while selection of design #1209
1154
- * Switches Redesigned for better UX #1211
1155
- * Welcome Page UX Improved #1214
1156
-
1157
- = 0.9.62 (25th September 2017) =
1158
- * View more details on https://ampforwp.com/new/
1159
- * INTRODUCING Page Builder 2.0 for AMP! [Learn More & Watch the Video](https://ampforwp.com/tutorials/article/amp-page-builder-installation/)
1160
- * Documentation & Help links improved
1161
- * Post type specific classes for targetting
1162
- * Design name restored in Options panel (It was recently renamed to Appearance)
1163
- * Minor Bug fixes as well
1164
-
1165
- = 0.9.61 (10th September 2017) =
1166
- * View more details on https://ampforwp.com/options-restructured/
1167
- * Options Panel Restructured – Options were dividing into two parts: Settings and Appearance.
1168
- * AMP Theme Framework Core Support Added. You can now create themes of your own in just minutes.
1169
- * WPML Static Front Page Support #1111
1170
- * Notification message disables when CF7 & gravity form is activated. #1107
1171
- * Space after On in Design 3 #1114
1172
-
1173
- = 0.9.60 (4th September 2017) =
1174
- * View more details on https://ampforwp.com/0-9-60-released-improved-redirection-66th-update/
1175
- * Class added to View non-amp anchor tag
1176
- * Params added properly to get rid of a warning #1077
1177
- * rel=attachment noopener generating validation errors #1090
1178
- * Breadcrumbs Support Added #701
1179
- * Enable / Disable button added for Navigation Menu #735
1180
- * Move the ad code for Instant Article down after the article #964
1181
- * Add analytics code of FB instant articles properly #1096
1182
- * datetime Tag not stripping properly #1043
1183
- * Mobile redirection on custom post types #1028 #1052
1184
- * Mobile Redirection causing extra redirect #879 #933
1185
- * Proper mobile redirection on Homepage #1052
1186
- * View non-amp on blog will redirect to blog
1187
- * Blog will redirect to blog irrespective of AMP Homepage option #871
1188
- * Dont redirect if archive support is disabled #1052
1189
- * non-amp category pages should redirect to non-amp pages if turned off from Hide AMP #999
1190
- * Disable amp for forum plugin (wpforo) #592
1191
-
1192
- = 0.9.59 (23th August 2017) =
1193
- * Design 3 Images were not aligned properly. Fixed. #1040
1194
- * Caption in the design 3 improved
1195
- * Jetpack File not loading throwing fatal error #1038
1196
- * If the mobile redirection is ON and the category is excluded to display the AMP then it should redirect properly
1197
- * Custom Editor Compatibility issue with SiteOrigin PageBuilder fixed #997
1198
- * Native Twitter Embed support
1199
- * Added a hook after the body tag: ampforwp_body_beginning (commit)
1200
- * GTM in AMP Improved #958
1201
- * WP User Avatar compatibility Added #975
1202
- * Alt tag on frontpage featured image added #1050
1203
- * Blurred Images on the frontpage fixed #1050
1204
- * Need to escape alt tag #1049
1205
- * Debug errors & PHP warnings were fixed #859 #811 #830 #810
1206
- * Proper rel canonicals for inner pages #1047
1207
- * Added Video sanitizer for comments #1053
1208
- * When activating the AMP plugin, display a notification in the popup. #1036
1209
- * Video Sanitizer added for Comments
1210
-
1211
- = 0.9.58.1 (9th August 2017) =
1212
- * Jetpack conflict issue solved #1038
1213
- * Genesis SEO Support added #1013
1214
- * Fixed Wrong SEO title issue #1013 and #836
1215
- * Design 3 Carousel script loading method improved #990
1216
-
1217
- = 0.9.58 (9th August 2017) =
1218
- * View more details on https://ampforwp.com/new/
1219
- * Genesis SEO for AMP support added
1220
- * AMP 0.4.2 Vendor Bundled for making it crash proof
1221
- * Archive desc only on 1st page #1029
1222
- * Ads are not working after 0.9.6 #1030
1223
- * Fixed the Post 0.9.57 Update Bugs #1025
1224
- * All Images are aligned on left side in design 3 #1031
1225
- * Custom frontpage title issue in Design 3 fixed
1226
-
1227
- = 0.9.57 (5th August 2017) =
1228
- * See the Full changelog https://ampforwp.com/0-9-57-released-compatibility-issue-fixed-62nd-update/
1229
-
1230
- = 0.9.56 (31st July 2017) =
1231
- * View more details on https://ampforwp.com/page-break-in-amp/
1232
- * Page Break / NextPage (Pagination) Support Added #834 #857 (Improvement)
1233
- * Show/Hide AMP for Categories of Posts or All posts #872 (Improvement)
1234
- * Adding analytics capabilities to Instant Articles #978
1235
- * JetPack Plugin Conflict Solved #971
1236
- * Social sharing code improved. amp-social-share js is getting added for line and WhatsApp social share #981
1237
- * Code improvement for rel canonicals(home and archive)
1238
- * Perfect SEO URL + Yoast SEO Compatibility #982
1239
- * Some styling for tags to show up properly
1240
- * Undefined index notices #960
1241
- * Non-amp category pages should redirect to non-amp pages if turned off from Hiding AMP #999
1242
- * Page builder text and button module issues #972
1243
- * Documentation links updated in the Options panel
1244
-
1245
- = 0.9.55 (13th July 2017) =
1246
- * View more details on https://ampforwp.com/0-9-55-released-improvement-update-61st-update/
1247
- * Disqus Comments show up even when disabled per post #931
1248
- * Unnecessary: Adding the Markup for AMP Woocommerce latest Products #929
1249
- * H3 inside OL in Related-Posts.php #930
1250
- * Advertisement Options in Instant Articles #943
1251
- * Incompatible with bootstrap plugin #525
1252
- * Error in tag and category links #934
1253
- * Pagebuilder Button module link had issues #951
1254
- * Unnecessary: Adding the Markup for AMP Woocommerce latest Products #929
1255
- * WPtouch Pro Compatibility Issues #927
1256
- * Better scripts compatibility in Single of post types #757
1257
- * Instant Articles Error: "The HTML element does not contain any text" #949
1258
- * added a filter in all the dates so a user can change the date format and modify #962
1259
- * Design3 Menu Arrows are clickable along with the links #952
1260
-
1261
-
1262
- = 0.9.54.2 (4th July 2017) =
1263
- * Minor bug post 0.9.54 bug fixed
1264
-
1265
- = 0.9.54 (4th July 2017) =
1266
- * View more details on https://ampforwp.com/new/
1267
- * Facebook Instant Articles Support #862
1268
- * Exclude Some Pages from Mobile Redirection #914
1269
- * After 0.9.53 update amp-social-share js missing (critical issue) #924
1270
- * Hooks added in Header (above and below)
1271
- * View non AMP[Code improvement] #928
1272
- * Pages are not supposed to show meta like this, especially Categories #894
1273
- * Monarch plugin having design issues #925
1274
- * Show AMP Hide AMP Check Box Fixes #794
1275
-
1276
- = 0.9.53 (19th June 2017) =
1277
- * View more details on https://ampforwp.com/stability-validation-issues-59th-update/
1278
- * Compatibility Issue with Rocket Lazy Load plugin #907
1279
- * Link color issue with UX of Color Pickers in Design 3 #731
1280
- * amp-analytics js appears more than once when Google tag manager is used #885
1281
- * SEO by SQUIRRLY is adding analytics twice #678
1282
- * Fatal error when WPSEO is activated #900
1283
- * Design 3 Sticky header should have an option #625
1284
- * Search form was enhanced, it can now be used on the websites without https certificate. That will certainly fix a lot of validation issues. #912
1285
- * Yandex Metrika support in AMP #585
1286
- * Histats Analytics Support #880
1287
- * Chartbeat Analytics Support #882
1288
- * Do not strip Rel from anchor tags #790
1289
- * Design close Resulting Blank Screen in AMP Site #642
1290
- * Logo size is not applying #817
1291
- * AMP Publisher logo guidelines #162
1292
- * Remove amp-social-share extension .js from Custom Frontpage #899
1293
- * Add compatibility with Sassy Social Share #679
1294
- * Remove Disallowed ‘like’ tag from Facebook Like button by Ultimate Facebook plugin
1295
-
1296
- = 0.9.51.1 (12th June 2017) =
1297
- * Redirection issue after 0.9.51 Update.
1298
- * Improved compatibility with plugins.
1299
-
1300
- = 0.9.51 (8th June 2017) =
1301
- * View more details on https://ampforwp.com/page-builder-released-in-amp/
1302
- * Page Builder Support added ( See Tutorial at https://ampforwp.com/tutorials/page-builder/ )
1303
- * Comments are not showing properly when words are long #861
1304
- * Remove amp-social-share extension .js from Pages #853
1305
- * The tag ‘amp-sidebar extension .js script’ appears more than once in the document #828
1306
- * Remove Advertisement tab #839
1307
- * Compatibility with Slide-in Plugin by WPMU dev #866
1308
- * Mobile redirection issue with bbpress #867
1309
- * All the data must be properly sanitize in the sidebar #849
1310
- * AMP html should not be added on the second page of comments
1311
- * Author page’s support #456
1312
- * URLs in comments should be clickable(links) #869
1313
- * Featured image should be centered in desktop mode #870
1314
- * Added More Hooks #721 (Documentation on this coming soon!)
1315
- * Page 2 goes to the wrong URL #865
1316
- * Proper Title and meta for homepage and posts #850
1317
- * Gist Support added #608 – Just add a shortcode and enjoy Devs (Ex: amp-gist id="b9bb35bc68df68259af94430f012425f )
1318
- * /blog/amp pagination not working #875
1319
- * separate the Text and Date format in design 2 #876
1320
- * Comments show in AMP w/o breaks between paragraphs #873
1321
- * If no featured image below hooks are not working #877
1322
- * Change meta name Viewport and its value #878
1323
- * Bolt icon in option #474
1324
- * Code restructuring and code quality improvements.
1325
- * Create a seperate function for comment code in frontpage.php #682
1326
- * Remove all the duplicate code from frontpage.php of all the designs and use hooks to add the code instead of static code #889
1327
- * Few Debug errors removed.
1328
-
1329
- = 0.9.50 (24 May 2017) =
1330
- * View more details on https://ampforwp.com/facebook-comments-in-amp/
1331
- * Design 3 Social Icons issue #832
1332
- * View non AMP leads to /?nonamp=1 #814
1333
- * Youtube shortcode compatibility improved #557
1334
- * welcome.php should be shown only if user is “administrator” #696
1335
- * Facebook comments support added in AMP #825
1336
- * WP Like Button Compatibility #841
1337
- * Custom Taxonomy Support added with Custom Post Type Extension.
1338
- * Front page – comments not found as expected #837
1339
- * Fixed xml:lang tag issue #848
1340
- * Sanitize Iframe in the archive description Fixed #845
1341
- * Compatibility with Newspaper Theme by TagDiv #842 and #796
1342
- * Some debug problems (blog page, style.php) #838
1343
- * Featured Image hooks added
1344
- * Twitter is misspelled #854
1345
- * The core concept of the AMP Content builder has been built.
1346
-
1347
-
1348
- = 0.9.49 (12 May 2017) =
1349
- * View more details on https://ampforwp.com/0-9-49-released-small-important-bugs-fixed-56th-update/
1350
- * Option added to display the excerpt in Single #806
1351
- * Ability to add new invalid tags to filter out from AMP pages #809
1352
- * In frontpage, comment button is pointing to wrong URL #812
1353
- * Call now button and search is overlapping in Design-1 #784
1354
- * Sticky Social Icons should be off if the CTA notification bar is on #788
1355
- * Author bio in Design 1 and 2 #732
1356
- * Styling in Taxonomy description causing validation issues #798
1357
- * Twitter share(handle, url positions fixed) #815
1358
- * Tables responsiveness in ALL Designs #726
1359
- * Output all the categories and tags with their own ID’s in the div classes #750
1360
- * Social Share Icons Overlap with Leave A Comment in Design 3 #716
1361
- * Effective Measure Support on AMP #297
1362
- * Custom AMP editor on pages should only be shown when page support is ON #756
1363
- * AMP on website.com/blog without need of separate installation #775
1364
- * GTranslate Compatible #819
1365
- * Images and amp-anim styling added #725
1366
- * Filter to make the title in a post to a link #727
1367
- * Author Bio and Social Share button must not come in Pages #770
1368
- * StatCounter is now compatible with AMP #361
1369
- * Line Social media support #500
1370
- * Footer menus for Design 1 & Design 2 #623
1371
- * Strip out src=”about:blank” When Gravity Forms used #804
1372
- * Add Compatibility with Crazy Lazy load plugin #751
1373
- * Meta Titles and Description issues fixed with Yoast, All in one SEO and The SEO Framework #813
1374
- * Double quotes in the Excerpt of the meta description is making AMP Invalidated #818
1375
- * Missing featured image on static front page #824
1376
- * Fatal error while activation: see the video 0.9.49 Beta #827
1377
- * Review this code in archive.php in all 3 designs. #826
1378
-
1379
-
1380
- = 0.9.48 (28 April 2017) =
1381
- * View more details on: https://ampforwp.com/0-9-48-released-step-towards-multilingual-support-55th-update/
1382
- * The default translation method of WordPress added. (Option in Translation panel to switch between * Translation panel and POT file #540)
1383
- * A new Advertisement slot added above the related posts in the Single. It not only gives better options for people to display ads but this ad slot is also very handy if you are using ad companies like Taboola and RevContent.
1384
- * Another Advertisement slot added below the post title in the Single post.
1385
- * Fatal error: require_once report-bugs.php #747 fixed
1386
- * Add / for codes in Meta Description #766 fixed
1387
- * Controls re-adjusted & Renamed title of yoast description control in Options panel
1388
- * Design-3 Slider URL redirecting to non-AMP page #758
1389
- * Added new sanitizer For HTML to AMP-HTML conversion
1390
- * Sanitized Archive descriptions so that it would convert to AMP
1391
- * Comments sanitized with new sanitizer so that HTML tags automatically become AMP compatible.
1392
- * 301 redirects on non-pretty internal links #767
1393
- * Create a filter to modify the value of rel="amphtml" #778
1394
- * Max-width added for images in comments
1395
- * If in WooCommerce ?amp endpoint set then update href.
1396
- * Undefined Variable (Debug) #733 and many other debug issues were fixed
1397
- * Show last updated Post instead of published date #575
1398
- * WooCommerce Widget added to display latest products on homepage. #763
1399
- * add amp_post_template_above_footer hook global in all the designs #779
1400
- * Excerpt on top of the content in Single #665
1401
- * Subscribe box has been improved for the UX needs #712
1402
- * Notice warnings since 0.4.2 update #740
1403
- * AMP Comments Form Integration with the extension
1404
- * Filter added on the loop in Homepage of the Design 3 so that it can be modified with an external plugin.
1405
- * 404 on paged home page #781
1406
- * Twitter handle should be at the end of the tweet not in the beginning #787
1407
- * Wrong Rel Canonical for AMP Custom Frontpage #799
1408
- * Merged a pull request #761 that will improve the title and description output that is much more stable and flexible for future enhancement and use. It was contributed by Sybre Waaijer - Thanks mate for the contribution, we (our team and users) really appreciate your hard work done on this code.
1409
- * Extension page user experienced improved.
1410
- * Removed old Youtube installation video and replaced with new one.
1411
-
1412
- = 0.9.47.2 (12 April 2017) =
1413
- * Design-3 Slider URL redirecting to non-AMP page #758
1414
- * Ads showing in comments #768
1415
-
1416
- = 0.9.47.1 (11 April 2017) =
1417
- * Meta description option improved in SEO section #766
1418
- * Fatal error: require_once report-bugs.php #747
1419
-
1420
- = 0.9.47 (10 April 2017) =
1421
- * View more details at https://ampforwp.com/0-9-47-released-54th-update/
1422
- * Meta saving method updated for customAMP content editor checkbox was causing some conflict.
1423
- * Wrong Yoast title and structured data in Custom Frontpage fixed
1424
- * CSS minification all 3 designs
1425
- * Polylang flags in menu was causing validation issue, is now resolved
1426
- * WPML flags in menu was causing validation issue, is now resolved
1427
- * Standardized function created for content sanitization.
1428
- * Archive description now displays AMP compatible markup
1429
- * Comments markup sanitized for AMP
1430
- * Design 3 images not aligned properly, fixed
1431
- * Images are aligned to center in Design 1.
1432
- * carousel ending with //amp instead of /amp – fixed #753
1433
- * Title of the Post along with Post link when shared in twitter #683
1434
- * Ads were cutting in half in RTL, fixed
1435
- * Add / at the end of AMP links with in the AMP pages (Internal links) #668
1436
- * Rendering the wrong URLs in front page if paged #742
1437
- * Option to turn off AMP on all pages, so people can turn on only for specific pages #746
1438
- * Need Meta Description on amp pages #741
1439
- * Woocommerce Loop shortcode updated
1440
- * Call Now Button added in header #563
1441
- * Post images are not centered in Design 3 #695
1442
- * UX of GTM settings done, since users were getting confused #700
1443
- * Front page amphtml fixed for paginated pages
1444
-
1445
- = 0.9.45.6 (31 March 2017) =
1446
- * Installation Process from welcome page was not working after WP Plugin DIR API change was fixed.
1447
- * WP Rocket Minifcation and Concatenation was not working, its fixed now.
1448
- * WP Rocket was tested properly to make sure everything is working fine.
1449
-
1450
- = 0.9.45.5 (25 March 2017) =
1451
- * WP rocket conflict solved
1452
- * Cannot set property ‘innerHTML’ of null issue fixed
1453
-
1454
- = 0.9.45.3 (21 March 2017) =
1455
- * Post 0.9.45 bugs fixed and released as an urgent update.
1456
-
1457
- = 0.9.45.1 (19 March 2017) =
1458
- * Post 0.9.45 bugs fixed and released as an urgent update.
1459
-
1460
- = 0.9.45 (18 March 2017) =
1461
- * View more details at https://ampforwp.com/0-9-45-released-compatibility-rtl-53rd-update/
1462
- * W3Total cache compatibility added
1463
- * RTL Support added for Right-to-Left language websites.
1464
- * Comments Pagination feature added
1465
- * WP-Rocket Compatibility added
1466
- * WPML Compatibility added
1467
- * Quantcast analytics support added
1468
- * ComScore support added
1469
- * Custom Yoast title support added #685
1470
- * WooCommerce Shortcode: Allows you to display WooCommerce Products. [amp-woocommerce num=6] will display the 6 products from WooCommerce. [amp-woocommerce num=6 link=noamp] will display 6 products but they will go to non-amp website, if you want to link to AMP version of the page then use [amp-woocommerce num=6 link=amp]
1471
- * Admin area UX improvements
1472
- * Adding notifications script in the correct way
1473
- * Comments now display on frontpage as well.
1474
- * Re-positioned non-amp Header link control to the right section.
1475
- * ?nonamp=1 only displays when the Mobile redirection is on
1476
- * Properly adding iFrame js.
1477
- * Custom Post type incompatibility fixed
1478
- * Widgets added to the Custom Frontpage.
1479
- * Stripping shortcodes from excerpts.
1480
- * Custom content on static frontpage had over riding issue #687
1481
- * Option added for controlling number of comments
1482
- * Welcome page should be shown only if user is “administrator” #696
1483
- * Digg Digg social share compatibility #694
1484
- * Removed unnecessary lines from Design 3
1485
- * Sanitized Archive Description to amp Compatible #659
1486
- * Author box now displays HTML properly #645
1487
- * Date added Design-3 in meta #583
1488
- * Options link was removed from wp-admin tool bar after a feedback from a user.
1489
- * Footer sub menus layout compatibility.
1490
-
1491
-
1492
- = 0.9.44 (5 March 2017) =
1493
- * View more details at https://ampforwp.com/user-experience-52nd-update/
1494
- * Added Welcome Screen for better User experience. [Enhancement]
1495
- * Undefined Index debug error resolved [Bug fix]
1496
- * All in one SEO Support support tested [3rd party compatibility]
1497
- * Frontpage title in Design 3 is out of the container #644 [Bug fix]
1498
- * Default Table markup in AMP #643 [Enhancement]
1499
- * AMP carousel is not working on Frontpage #641 [Bug fix]
1500
- * Social share .js was getting added even when it was not required #638 [Bug fix]
1501
- * Search Feature added for Design 1 & Design 2 [Major Improvement]
1502
- * Accordion script loading issue in Design 3 #634 [Bug fix]
1503
- * ?nonamp=1 links should be nofollow #622 [Bug fix]
1504
- * Same Header and Color Scheme are making header elements invisible #629 [Enhancement]
1505
- * In Search AMP rel canonical was different #631 [Bug fix]
1506
- * Non-AMP link in Design 3 was not working when mobile redirection was enabled #632 [Bug fix]
1507
- * Search form text strings are now added in the translation panel #607 [Bug fix]
1508
- * Load AMP-ads conditionally only if ads are available #609 [Bug fix]
1509
- * Added compatibility with Custom post type extension. Option to hide/show AMP on all custom post types #587 [Bug fix]
1510
- * Report a Bug & Request feature links added [Enhancement]
1511
- * If there was no menu set in Design 3 then all pages were getting displayed. #613 [Bug fix]
1512
- * The tag Font is disallowed #616 [Validation Improved]
1513
- * index/noindex separately added for Tags and also for Categories #606 [Enhancement]
1514
- * Use of undefined constant AMP_QUERY_VAR #596 [Bug fixed]
1515
- * Logo is not centered in Design 3 #586 [Bug fixed]
1516
- * Remove defer, a very rare type of defer was getting added #589 [Validation Improved]
1517
- * Disqus comments iframe had scrolling issues #566 [Bug fixed]
1518
- * Left side blank gap in the RTL in design 2 #541 [Bug fixed]
1519
- * Inline Styles not working correctly in Custom AMP Editor #533 [Bug fixed]
1520
- * Re-save permalinks issues. Flushing rewrites with options saved. #511 [Improvement]
1521
- * Code review and cleaning of the customizer #404 [Code Cleaning]
1522
- * Google Search iframe had some header alignment issues in Design 3. #624 - Thank you Leo Osa @leoosa for the contribution! [Bug fixed]
1523
- * AMP Frontpage + Override AMP Content = Blank page #604 [Bug fixed]
1524
- * Widget area added on the homepage with an 'AMP Category Blocks' widget. It means you can display multiple category blocks the homepage. This allows you to display complex layouts, even on AMP. [Major Improvement]
1525
- * Auto-append /amp at the end of internal links in Menu with an option in the Menu section of the options panel #531 [Major Improvement]
1526
- Reformatting and Minifying of stylesheet [Code Cleaning]
1527
- * Created a new section for Homepage and moved some controls from other areas to the home section for the better user experience. [User Experience]
1528
- * Override Homepage Thumbnail size option added. It will give you more control over your thumbnails. [Major Improvement]
1529
- * New color picker added to change the color of the header elements in the Design 3 to give you better control over the design. [Enhancement]
1530
- * Extra amp-carousel script loading is now fixed. [Bug fixed]
1531
- * Crafting of layout code in design 2 and design 3, especially with social icons area. [Code Cleaning]
1532
- * Design of search form was not clickable in iOS devices #621 [Bug fixed]
1533
- * Disqus iframe was loading even when there was no disqus name was added in the option. We found that many users might be enabling it without knowing the output and then they seem to forget, which was causing them validation warnings. [Bug fixed]
1534
-
1535
- = 0.9.43.6 =
1536
- * View more details at https://ampforwp.com/stability-sprint-3-51st-update/
1537
- * Typo in the is_home() function fixed
1538
- * Option to hide/show AMP on all custom post types #587
1539
- * False detection by Windows defender tool fixed
1540
- * Conditional tags were not compatible with Advanced AMP ads which were causing some conflicts but is now fixed.
1541
-
1542
- = 0.9.43.5 =
1543
- * View more details at https://ampforwp.com/stability-sprint-2-50th-update/
1544
- * Fixed shortcodes issue in related posts #543
1545
- * Iframe Scripts Added properly
1546
- * Proper conditions added for the social section of Design 3
1547
- * Featured Image issue stretched in Design 2 & 3
1548
- * Removed extra global $redux_builder_amp;
1549
- * Custom Logo Dimensions option added #479
1550
- * Index & NoIndex options added for SEO section. #558
1551
- * Added URL for rewrite flushing rules in Options
1552
- * Option to enable and disable the Author area in Design 3#577
1553
- * Rel Nofollow added in credit link
1554
- * debug issue solved: fn_offset not defined
1555
- * debug issue solved: global $post not declared
1556
- * The word 'ago' is now translatable in design 3
1557
- * The word 'read next' is translatable now
1558
- * Tablepress compatibility added #392
1559
- * Secure API server is now serving through Google Cloud Manager.
1560
- * Thrive Content builder was displaying twice when the Custom AMP content was on. It was a complex issue which has been solved now.
1561
- * amp-ad extension.js script was loading if the Ads are not enabled. #598
1562
- * Social Share Extension Included on Homepage even if we didn't have social icons #599
1563
- * Installation UX improvement #593
1564
- * Removed duplicate global variable
1565
- * Proper OG tags added #588
1566
- * Proper instructions added for Custom AMP content #471
1567
-
1568
-
1569
- = 0.9.43.1 =
1570
- * View more details at https://ampforwp.com/0-9-43-1-released-stability-sprint-1-49th-update/
1571
- * Emoji in comments leads to AMP errors
1572
- * Design 1 showing time on archives
1573
- * Added some space between the archive label.
1574
- * Lazy loading plugins compatibility #544
1575
- * Custom header and footer areas
1576
- * Sticky posts now come on top #564
1577
- * Footer non-amplink added in design 3 #562
1578
- * HTML Paragraph tag is shown in the title in category! #518
1579
-
1580
- = 0.9.42 =
1581
- * View more details at https://ampforwp.com/design-three-update/
1582
- * Design 3 was released – Video Overview along with new options and features. View the video overview at: https://www.youtube.com/watch?v=ub1pwskt3Rc [Major Feature]
1583
- * Ticket #517 – Added Upload field into Redux core [3rd party Compatiblity]
1584
- * Ticket#529 Controls for archive titles added [Improvement]
1585
- * Ticket #548 Jetpack photon code removed
1586
-
1587
- = 0.9.41 =
1588
- * View more details at https://ampforwp.com/disqus-comments-in-amp/
1589
- * Disqus Comments in AMP Support Added [New Feature] - This feature can be enabled from Dashboard > AMP Options > Disqus Comments
1590
- * AMP WooCommerce supported tag was missing after the last update. [Bug fix]
1591
- * Homepage & Related Posts was displaying private and protected posts, which is now fixed [Bug fix]
1592
- * Next previous links added in Design 1 [Enhancement]
1593
- * Invalid Post Time displaying in the homepage of Design 1 [Bug fix]
1594
- * Twitter share now includes the twitter handle of the author with setting in options [Enhancement]
1595
- * Emoji in comments leads to AMP errors was fixed [Bug fix]
1596
- * Date are now displayed on archives in Design 1 [Enhancement]
1597
- * When RTL enabled logo merges with nav bar was fixed [Bug fix]
1598
- * Jetpack Photon compatibility added [3rd Party Compatibility]
1599
-
1600
- = 0.9.40 =
1601
- * View more details at https://ampforwp.com/0-9-40-released-biggest-stability-update/
1602
- * Proper endpoints added [Improvement]
1603
- * Flush Rewrites properly [Improvement]
1604
- * REL Canonical properly getting added. [Improvement]
1605
- * Proper Frontpage Canonical added [Improvement]
1606
- * Added Base name support for categories and tags [Improvement]
1607
- * Redirection of excluded post solved. [Bug fix]
1608
- * Archives properly redirecting to the right URL [Bug fix]
1609
- * Homepage redirection solved [Bug fix]
1610
- * Plusone tag is stripped properly. [Validation Issue fixed]
1611
- * Archives are now clickable. [Improvements]
1612
- * WP_Query filter added for better customizability of Homepage loop. [Better Customizations]
1613
- * Social share boost plugin compatibility. [3rd party Customizations]
1614
- * Removed H1 from the frontpage even if it is not available. [Improvement]
1615
- * H3 instead of H1 for Site title. So there is only one H1 per page. [SEO Improvement]
1616
-
1617
- = 0.9.38 =
1618
- * View full details at https://ampforwp.com/google-tag-manager-for-amp/
1619
- * Google Tag manager included [New feature]
1620
- * Iframe max-width added [Improvement]
1621
- * Paginated pages have different titles now. [Bug fix]
1622
-
1623
- = 0.9.37 =
1624
- * View full details at https://ampforwp.com/category-tags-archive-support-added/
1625
- * Debug issues solved [Bug fix]
1626
- * Remove Extra styling added by other Themes/ Plugins [3rd party themes and plugin Support]
1627
- * Category, Tags & Archive Support with titles added [Enchancement]
1628
- * Archive Title support added [Enchancement]
1629
- * There were some issues with attachments [Bug fix]
1630
- * removed ? from amp url's [Improvement]
1631
- * Mobile redirection for Archives added and 404 redirections removed for archives [Improvement]
1632
- * View non-amp version now properly redirects to the normal version. #415 [Bug fix]
1633
- * Added an option to turn off AMP support for Homepage. [Enchancement]
1634
- * Too many redirects issue on homepage is fixed #435 [Improvement]
1635
- * Spell check and G tags are removed for thrive & Spell check compatibility [Better Validation]
1636
- * If image is not available in gravatar fixed, it was throwing an error #365 #327 [Improvement]
1637
- * Comment anchor link changed for simplecomment button files in both designs [Improvement]
1638
- * Redirection Loop issue fixed [Bug fix]
1639
- * Shortcodes were visible in excerpt, it's fixed now. [Improvement]
1640
- * Defer onload by other plugins was causing issues #431 [Better Validation & 3rd party support]
1641
- * Improved Sessions [Improvement]
1642
- * Advnaced Settings panel was created for better user experience. [Improvement]
1643
- * Spell check tag was causing validation issues. [Better Validation & 3rd party support]
1644
- * RTL issue fixed #454 [Bug fixed]
1645
-
1646
- = 0.9.36 =
1647
- * Full details at https://ampforwp.com/0-9-36-released-stability-update-43rd-update/
1648
- * Redux Core Update. Better compatibility with the Salient theme and Themeforest themes & plugins using redux framework in their core, which makes the plugin much stable. [Huge Improvements]
1649
- * Hide advertisement section if advance ads plugin is active. [Better User experience]
1650
- * Ultimate Social Media PLUS Plugin Compatibility (Link) [3rd Party plugin Compatibility & Better Validation]
1651
- * Launch Post Builder button added. One of the important feature called ‘Post Builder’, that is drag and drop post builder was somewhere hidden in the customizer, so positioned it for better visibility from users. [Better UX]
1652
-
1653
- = 0.9.35 =
1654
- * Full details at https://ampforwp.com/page-builder-realtime-preview-3rd-party-plugins-compatibility/
1655
- * Customizer page builder (Design Manager) was not showing real-time preview, we have fixed this issue properly [Bug fix]
1656
- * Attachment page was having the wrong endpoint. [Bug fix]
1657
- * Fb:like div has href, showfaces, send and action tag, which was against validation [Validation Improvement]
1658
- * A plugin (Spam Protection by CleanTalk, no Captcha Anti-Spam) was forcefully adding script into the AMP version. [3rd party Compatibility]
1659
- * Lang attributes were added [Enhancement]
1660
- * The tag like was disallowed in the AMP [Validation Improvement]
1661
- * We did some more testing with Visual Composer & AMP [3rd party Compatibility]
1662
- * AMP on Pages option was not working in some cases. [Bug fix]
1663
- * Disable comment button when comments were disabled. This was fixed by @lofesa and was sent as a pull request. Thank you Lofesa!
1664
- * g:plusone tag was not getting removed properly. [Validation Improvement]
1665
- * Thrive headline optimizer was having issues in AMP version. [Validation Improvement]
1666
- * Structured Data Image width issue solved [Enhancement]
1667
- * BJ Lazy Load was having issues, we have added a fix which will make this plugin compatible with the AMP. [3rd party Compatibility & Validation Improvement]
1668
- * imageanchor=”1″ was getting added by some 3rd party plugin, this was fixed.[Validation Improvement]
1669
-
1670
- = 0.9.34 =
1671
- * Newspaper theme by Tagdiv was having issues, we have fixed this one.
1672
-
1673
- = 0.9.33 [15th Jan 2017] =
1674
- * Full details at https://ampforwp.com/debug-errors-shortcodes/
1675
- * Mobile was not working with Newspaper theme by Tagdiv [Bugfix]
1676
- * Debug errors fixed, Code is now much cleaner.
1677
- * New rewrite rules for homepage pagination. It had some paginated URLs with wrong amphtml tag.
1678
- * Extra analytics file was loading. Better compatibility with Yoast & Monster analytics.
1679
- * Properly removes AMP if turned off from Post panel
1680
- * z-index position improved on Sticky Social bar
1681
- * Better compatibility with shortcodes.
1682
- * Divi Standard Layouts Compatibility
1683
- * Properly Hide AMP posts if excluded. #367
1684
- * Mobile redirection was causing loop issues which are now fixed.
1685
- * Some plugins were loading in core AMP js file, which was causing the issues, which is now fixed. [Better Validation]
1686
- * onclick was getting added in the links on AMP version. Issue fixed. [Better Validation]
1687
- * thrive_headline tag was getting added in the Title tag which was causing validation issues. Fixed. [Better Validation]
1688
- * Some interactive plugins were using place, state, city and imap tags which are now fixed. [Better Validation]
1689
-
1690
- = 0.9.32 [7th Jan 2017] =
1691
- * Full details at https://ampforwp.com/first-wave-of-polishing-in-2017/
1692
- * Rel=canonical issue fixed: AMP URL redirect to the normal URL #293 & #332.
1693
- * Paginated pages on homepage redirect to homepage URL #335
1694
- * Title of the page should be displayed on the FrontPage #358
1695
- * Thrive Builder AMP Validation Compatibility, so it will be validated properly in AMP.
1696
- * Twitter Sharing improved so it gets the data properly #341
1697
- * Option to change the number of Related Posts #290
1698
- * Validation errors due to rel="canonical" was missing on some pages
1699
- * Comment button displays even if the comments are not available
1700
- * Threaded comments were duplicating, so that issue is solved and added proper CSS for it.
1701
- * Minor issue with Jetpack Comments fixed.
1702
- * Missing amp-social-share.js on front page fixed #372
1703
- * Minor improvements to Title and description tags.
1704
- * Analytics Script was loading twice when Glue was active.
1705
- * Page specific class added for better customization compatibility #377
1706
- * Inline Style support added Fixed #356
1707
- * Bugs fixed in Email notification pointer
1708
-
1709
- = 0.9.31 [2nd Jan 2017] =
1710
- * Proper Details at https://ampforwp.com/amp-0-9-31-released-installation-user-experience/
1711
- * Proper Condition added for the scripts to load in Frontpage.php
1712
- * Rel canonical properly added for front pages
1713
- * 404 and Archive page Mobile redirection code refined
1714
- * User Experience Improvement: Installation process was improved
1715
-
1716
- = 0.9.3 [31th December 2016] =
1717
- * Proper Details at https://ampforwp.com/custom-amp-content-editor/
1718
- * Custom AMP Editor - Which allows you to override your Content that you had written in Post or page, so you can add the different content just for AMP.
1719
- * FrontPage had some validation issues. [Bug fix]
1720
- * Related posts in Design 1 we're redirecting to 404 fixed [Bug fix]
1721
-
1722
- = 0.9.2.2 [27th December 2016] =
1723
- * Proper Details at https://ampforwp.com/polishing-user-experience-improvements/
1724
- * Made the Options panel user-friendly
1725
- * Social Share on frontpage issue fixed.
1726
- * Readme.txt made user-friendly.
1727
- * Archive option removed and some UI improvements
1728
- * Single was not displaying the Title
1729
- * 'Type is not allowed' [Validation issue fixed]
1730
- * noshade tag Validation issue fixed
1731
-
1732
- = 0.9.2.1 [24th December 2016] =
1733
- * Proper Details at https://ampforwp.com/step-towards-fixing-amp-validation-errors/
1734
- * Disabled the Tags and Categories support for AMP for better validation until we find a better solution.
1735
- * Mobile redirection bug fixed, It was continuously redirecting to the same page [Bug fix]
1736
- * trailingslashit added to make sure we have proper url for Mobile redirection [Bug fix]
1737
- * In content AD overlapping the content issue fixed
1738
-
1739
- = 0.9.2 [23th December 2016] =
1740
- * Proper Details at https://ampforwp.com/mobile-redirection/
1741
- * AMP Mobile Redirection Feature added. It can be turned on from Dashboard > General and then Mobile Redirection. [New Feature]
1742
- * Archive title and description added [Improvement]
1743
- * Improved the Speed of the AMP version #321 [Improvement]
1744
- * Anchor link was not closing fixed #328 [Bug Fix]
1745
- * Typo in Trailingslashit function which resulted in some issues in the Homepage version [Bug Fix]
1746
-
1747
- = 0.9.1.2 [20th December 2016] =
1748
- * Proper Details at https://ampforwp.com/new/
1749
- * DoubleClick Support
1750
- * Custom Post Type Support
1751
- * Ratings Support
1752
- * Comments Gaping fix
1753
- * Custom Excerpt code
1754
- * Better Compatibility with Yoast SEO plugin
1755
- * AMP Validation error in Design 1 Fixed
1756
- * Proper Homepage title & Description with Yoast SEO plugin issue fixed
1757
- * Design -1 Excerpt too big for mobile devices, Fixed
1758
- * Advertisement support on Design 1
1759
- * Link to Tags & Categories were having some issues.
1760
- * AMP looking bad on big devices
1761
- * AMP validation Improvement: Lightbox plugins compatibility
1762
- * Huge Progress in AMP Validation Errors: Strip unwanted codes and tags from wp_footer for better compatibility with Plugins
1763
- * Page Performance: Removed default Google font loading
1764
- * Page Performance: DNS Prefetch tag added for faster DNS Handshake
1765
-
1766
- = 0.9.1 [16th December 2016] =
1767
- * Proper Details at https://ampforwp.com/new/
1768
- * PHP7 Compatibility
1769
- * Pagination URLs (Prev & Next) was going to 404 ( #244 | #251 )
1770
- * Custom CSS not working in Design one (#249)
1771
- * Enhanced the translation panel by adding Textarea from Redux, which means that we're able to allow HTML in footer like before (#260)
1772
- * How to remove “Powered by WordPress” from Design-1 of AMP ( #264 )
1773
- * Non-amp Homepage support added (#267)
1774
- * using get_avatar() (#259)
1775
- * Validation issue fixed: The attribute 'rel' may not appear in tag 'div' (#268)
1776
- * Validation Issue fixed: Script Tag removed from the content.
1777
- * Featured image in Design 1 in single #261
1778
- * After Fresh installation - a save is required Fixed
1779
- * Excerpt length controlled
1780
- * Design One has thumbnails on the Homepage
1781
- * Non-AMP link goes to the wrong page, issue fixed.
1782
- * Archive pages were broken, fixed.
1783
- * Option to Enable & Disable the Next/Previous links in Single
1784
- * WhatsApp sharing not working, issue fixed.
1785
- * Category Taxonomy has extra ':' in the word.
1786
- * The word 'Ago' is now translatable.
1787
- * Yoast SEO with AMP compatibility issue fixed.
1788
- * Several Minor Polishing in the code
1789
- * Footer Ad gets covered by Sticky Social Icons (#269)
1790
- * Smaller image size when “image caption” is used in Design-2 (#263)
1791
- * Footer ad with Sticky Social bar issue fix
1792
- * Checked with WordPress 4.7
1793
- * Ad #1 was messing up with the title, issue fixed.
1794
- * Compatibility improved with AMP WooCommerce.
1795
-
1796
- = 0.9 =
1797
- * Proper Details at https://ampforwp.com/amp-pagebuilder/
1798
- * Drag & Drop Page builder Added: You can easily modify the look of the AMP page using this feature
1799
- * 100% Yoast Compatible , Now no need to have additionally Glue Installed
1800
- * 100% completed Translation panel, Now absolutely anything on page is translated
1801
- * Added Option to turn on/off Page Support
1802
- * Styling for Tags was Corrected
1803
- * Made changes to these sections to reflect in the new Design manager : Related Posts, Footer
1804
- * Default Image alignment styling added
1805
- * Added Option to turn on/off Page Support
1806
- * Related Posts Now use Custom Excerpt if it Exists
1807
- * Now AMP pages wont have Validation errors because of 'rel' attribute in 'div' Tag or 'onclick' attribute in 'a' Tag
1808
- * <pre> Tag styling issue fixed for AMP pages
1809
- * Frontpage (Homepage) Compatibility with AMP which means better validation of front page.
1810
- * WooCommerce Support Added https://wordpress.org/plugins/amp-woocommerce/ (for E-Commerce)
1811
- * 2 New Designs added
1812
- * SEO Panel Added
1813
-
1814
- = 0.8.8 =
1815
- * Proper Details at https://ampforwp.com/amp-0-8-8-released-translation-panel/
1816
- * Translation Panel added. You can now easily translate the AMP version from the backend without any complications.
1817
- * Badge Tag was throwing Validation error
1818
- * Plusone tag validation error was fixed
1819
- * Time tag was validation error was fixed
1820
- * User experience for Mobile devices was improved
1821
- * Meta info was messing up in smaller devices, it was fixed as well.
1822
- * Internal AMP linking added for Categories and Tags
1823
- * Future errors for AMP ads was fixed
1824
- * Blockquote styling added
1825
- * “Please Activate parent Plugin settings” added for better User Experience.
1826
- * Related Post Ux improvement
1827
- * Plugin version added in Footer source code for better debugging
1828
- * Added Support for Default WordPress Image alignment
1829
- * New action hooks added in index page
1830
- * Featured Image Size options added
1831
-
1832
- = 0.8.7 =
1833
- * Proper Details at https://ampforwp.com/amp-0-8-7/
1834
- * added option to enable/disable AMP on Archive pages (Ticket #188)
1835
- * Solved 404 on Related Posts (Ticket #178 )
1836
- * Related posts by either categories or Tags(Ticket #179)
1837
- * added a link to menu Section from the AMP Options page(Ticket #190)
1838
- * Added Support for Piwik Analytics(Ticket #163)
1839
- * Added Support for Segment.com Analytics(Ticket #50)
1840
- * Added a switch for hiding Non-Amp page link from Footer.( Ticket #189)
1841
- * Added an Option that strips Users URL from Comments Section(Ticket #180)
1842
- * Fixed stripping <date> tags from the content , Since it was preventing validation – amp-img issues fixed
1843
- * UX Improved for every section of AMP Options page
1844
- * Added Settings button on plugin page
1845
- * Related posts switch added
1846
- * Removed carousel.js
1847
-
1848
-
1849
- = 0.8.6.1 =
1850
- * Date Tag fix
1851
- * Few validation issues after 0.8.6 were fixed (Frontpage amp-img strip issue fixed)
1852
-
1853
- = 0.8.6 =
1854
- * Proper Details at https://ampforwp.com/amp-0-8-6-released-related-posts-comments/
1855
- * Related Posts
1856
- * Post Comments
1857
- * WhatsApp sharing button – Your visitors can now easily share the content over the whatsapp.
1858
- * Validation issue fixed by All In One Schema.org Rich Snippets plugin
1859
- * Removed Google Fonts loading for Performance
1860
- * New relic Support
1861
- * Class added to ‘View Non-AMP Version’ text
1862
- * Archives Structured Data issue fixed
1863
- * Some instances img tags converted into amp-img automatically.
1864
-
1865
-
1866
- = 0.8.5.3 =
1867
- * Canonical issue fixed for Post
1868
-
1869
- = 0.8.5.2 =
1870
- * Canonical issue fixed for FrontPage
1871
-
1872
- = 0.8.5.1 =
1873
- * Proper Details at https://ampforwp.com/new/
1874
- * Validation issue fixed: 'Value' tag
1875
- * Validation issue fixed: The attribute 'contenteditable' may not appear in tag 'a'.
1876
- * Validation issue fixed: Table markup
1877
- * Validation issue fixed: nowrap and misc tags
1878
- * New Relic Support
1879
- * Tags on off option
1880
- * Canonical and correct AMP html Redirect issues Solved
1881
- * NextGEN Gallery Validation Support Added
1882
-
1883
- = 0.8.5 =
1884
- * Proper Details at https://ampforwp.com/the-0-4-compatibility/
1885
- * AMP 0.4 Compatibility Check
1886
- * Even better Structured Data Validation, Once in for all!
1887
- * Structured Data Options to eliminate Validation errors
1888
- * AMP Page Exclude option
1889
-
1890
- = 0.8.4 =
1891
- * Proper Details at https://ampforwp.com/blog/structured-data-validation/
1892
- * Structured Data Validation
1893
- * Navigation Text Change
1894
- * Inline Style Validation
1895
- * Form Validation
1896
- * Frontpage shows the amphtml rel twice fixed
1897
- * Facebook Sharing not working
1898
-
1899
- = 0.8.3 =
1900
- * Prefix added in the Content filter
1901
- * Extra space after quote in Ads
1902
-
1903
- = 0.8.2 =
1904
- * Proper Details at https://ampforwp.com/blog/the-custom-frontpage/
1905
- * Custom AMP FrontPage
1906
- * Featured Image
1907
- * New Mobile Friendly Advertisement sizes
1908
- * Single Post Pagination Option
1909
- * RTL Support
1910
- * Notifications
1911
- * Gaping if the Meta was turned off.
1912
- * Analytics was not fetching the user id properly.
1913
- * Page was not using the post template along with the AD support.
1914
- * AMP Endpoint support for Paged when the front page is active.
1915
- * UI improvement of Admin panel
1916
- * Few Validation issues fixed
1917
-
1918
- = 0.8.1 =
1919
- * Warning: Cannot modify header information error fixed
1920
- * Validation issue fixed. KK Star Plugin compatible.
1921
- * Gaping in the smaller screens fixed
1922
-
1923
- = 0.8 =
1924
- * Proper Details at https://ampforwp.com/blog/the-change/
1925
- * Plugin was re-written from scratch and is now built on top of default AMP plugin by Automattic but giving you the same features of the original plugin.
1926
- * 99.5% Validation issues were fixed.
1927
- * Page builder & Shortcodes Compatibility Support Added
1928
- * Conflict with JSON API
1929
- * Carousel support for Gallery
1930
- * Better Image stretching and resizing
1931
- * Youtube Video Embed Support
1932
- * Vine Embed Support
1933
- * Twitter oembed Support
1934
- * Instagram Embed Support
1935
- * Facebook Video Embed Support
1936
- * Better Future Compatibility
1937
-
1938
- = 0.7.7 =
1939
- * Proper Details at https://ampforwp.com/blog/amp-0-7-7/
1940
- * Big Validation Error fix Update
1941
- * Disable AMP support on specific Pages and Posts
1942
- * Option to disable the Post meta from the Single
1943
- * Footer Credits and Copyright Text Option
1944
- * New options for Social Sharing Bar in Single
1945
- * Jetpack Social & Related Sharing Issue fixed
1946
- * Gaping in footer if the Sticky bar is enabled
1947
- * Text domain added on few strings
1948
-
1949
- = 0.7.6 =
1950
- * Google Adsense Support Added with AMP-Ad
1951
- * Wrong Homepage rel amphtml bug fixed
1952
-
1953
- = 0.7.5 =
1954
- * Google Analytics Support Added
1955
- * Logo Support Added. If the logo is disabled, then the Title should be activated.
1956
- * Color Scheme Feature Added
1957
- * User friendly Options Panel Added
1958
- * iFrame support Added
1959
- * Few Minor Bugs Fixed
1960
-
1961
- = 0.7.1 =
1962
- * Bug #24 (Github) fixed
1963
- * Strip Style tags for faster & better validation
1964
- * Bug #21 (Github) fixed
1965
-
1966
- = 0.7 =
1967
- * Canonical Improved
1968
- * Navigation Validation bug fixed
1969
- * Two more validation bugs fixed ('role' and 'tabindex' attribute)
1970
- * Featured image automatically hides if it is not present
1971
- * Validation issues in the images of the post's the_content
1972
-
1973
- = 0.6 =
1974
- * Improved Navigation Menu
1975
- * Search Console errors fixed
1976
- * Social Sharing option
1977
- * Pages support
1978
- * Force redirection for mobile users removed and many other bug fixes
1979
-
1980
- = 0.5 =
1981
- * Added AMP Markup for Google Structured data. This will fix the issues in Webmaster tools.
1982
-
1983
- = 0.4 =
1984
- * Support of Custom menu added for AMP enabled sites
1985
-
1986
- = 0.3 =
1987
- * Support of amp-img added in single posts
1988
- * minor css bug fixed
1989
-
1990
- = 0.2.5 =
1991
- * Minor bugs fixed
1992
- * ?mobile & ?nomobile is now ?amp & ?noamp
1993
-
1994
- = 0.2 =
1995
- * White Screen of death issue fixed
1996
- * Plugin URI updated
1997
 
1998
- = 0.1 =
1999
- * Initial version
4
  Donate link: https://www.paypal.me/Kaludi/25
5
  Requires at least: 3.0
6
  Tested up to: 4.9.8
7
+ Stable tag: 0.9.97.20
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
118
 
119
  **[5. Frequently Asked Questions:](https://ampforwp.com/faq/)** Some of the Frequently Asked questions.
120
 
121
+ == Credits ==
122
+ Some code used in this plugin was forked from 'AMP for WordPress' plugin https://wordpress.org/plugins/amp/ - License URI: http://www.gnu.org/licenses/gpl-2.0.html.
123
 
124
  == Installation ==
125
  **[Visit Help area for the Documentation:](https://ampforwp.com/help/)**
182
  10. Homepage of Design One
183
  11. Pingdom Speed Report for AMP
184
 
 
185
  == Changelog ==
186
 
187
+ = 0.9.97.20 (29th October 2018) =
188
+ * Fixed: Plugin Vulnerability #2650
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189
 
190
+ Full changelog available in changelog.txt
 
templates/ampforwp-custom-post-type.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
3
  $ampforwp_cpt_plugin_check = is_plugin_active( 'amp-custom-post-type/amp-custom-post-type.php' );
4
  if ( false == $ampforwp_cpt_plugin_check ) {
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
7
  $ampforwp_cpt_plugin_check = is_plugin_active( 'amp-custom-post-type/amp-custom-post-type.php' );
8
  if ( false == $ampforwp_cpt_plugin_check ) {
templates/category-widget.php CHANGED
@@ -1,13 +1,17 @@
1
  <?php
 
 
 
 
2
  class AMPFORWP_Categories_Widget extends WP_Widget {
3
 
4
  // Set up the widget name and description.
5
  public function __construct() {
6
  $widget_options = array(
7
  'classname' => 'ampforwp_categories_widget',
8
- 'description' => __('This Widget adds categories where necessary in AMP Pages','accelerated-mobile-pages')
9
  );
10
- parent::__construct( 'ampforwp_categories_widget', __('AMP Categories Module','accelerated-mobile-pages'), $widget_options );
11
  }
12
 
13
 
@@ -50,7 +54,7 @@ class AMPFORWP_Categories_Widget extends WP_Widget {
50
 
51
  if ( $the_query->have_posts() ) {
52
  echo '<div class="amp-wp-content amp_cb_module amp-category-block"><ul>';
53
- echo '<li class="amp_module_title"><span>'.$ampforwp_title .'</span></li>';
54
  while ( $the_query->have_posts() ) {
55
  $the_query->the_post();
56
  $ampforwp_post_url = get_permalink(); ?>
@@ -58,7 +62,7 @@ class AMPFORWP_Categories_Widget extends WP_Widget {
58
  <?php if ( ampforwp_has_post_thumbnail() ) {
59
  $thumb_url = ampforwp_get_post_thumbnail('url');
60
  ?>
61
- <a href="<?php echo ampforwp_url_controller($ampforwp_post_url);?>"><amp-img class="ampforwp_wc_shortcode_img" src=<?php echo $thumb_url ?> width=150 height=150 layout=responsive></amp-img></a>
62
  <?php } ?>
63
 
64
  <a class="ampforwp_wc_shortcode_title" href="<?php echo ampforwp_url_controller($ampforwp_post_url) ;?>">
@@ -84,15 +88,15 @@ class AMPFORWP_Categories_Widget extends WP_Widget {
84
  //show more link
85
  if( $ampforwp_category_link === 'yes' && ! empty( $ampforwp_category_id ) ) {
86
 
87
- $category_link = '<a class="amp-category-block-btn" href="'.ampforwp_url_controller(get_category_link( $ampforwp_category_id) ).'">'. ampforwp_translation($redux_builder_amp['amp-translator-show-more-text'], 'View More Posts (Widget Button)').'</a>';
88
  } else {
89
- $category_link = '<a class="amp-category-block-btn" href="'.ampforwp_url_controller( home_url() ).'">'. ampforwp_translation($redux_builder_amp['amp-translator-show-more-text'], 'View More Posts (Widget Button)').'</a>';
90
  }
91
  if( $ampforwp_category_link === 'no' ) {
92
  $category_link = '';
93
  }
94
 
95
- echo $category_link ;
96
 
97
  echo '</ul> <div class="cb"></div> </div>';
98
 
@@ -119,15 +123,15 @@ class AMPFORWP_Categories_Widget extends WP_Widget {
119
  <!-- Form Ends Here -->
120
  <p>
121
  <!-- text Start Here -->
122
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php echo __('Title:','accelerated-mobile-pages') ?>
123
- <input class="widefat" type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $ampforwp_title ); ?>" />
124
  </label><br>
125
  <!-- text End Here -->
126
  </p>
127
  <!-- select Start Here -->
128
  <p>
129
- <label for="<?php echo esc_attr( $this->get_field_id( 'category' ) ); ?>"><?php echo __('Category:','accelerated-mobile-pages') ?>
130
- <select id="<?php echo $this->get_field_id('category'); ?>" name="<?php echo $this->get_field_name('category'); ?>" class="widefat" value>
131
  <?php
132
 
133
  $categories = get_categories( array(
@@ -137,7 +141,7 @@ class AMPFORWP_Categories_Widget extends WP_Widget {
137
 
138
  echo '<option selected value="none">Recent Posts </option>';
139
  foreach( $categories as $category ) {
140
- echo '<option '. selected( $instance['category'], $category->term_id) . ' value="'. $category->term_id . '">' . $category->name . '</option>';
141
  } ?>
142
  </select>
143
  </label>
@@ -146,31 +150,31 @@ class AMPFORWP_Categories_Widget extends WP_Widget {
146
 
147
  <p>
148
  <!-- text starts Here -->
149
- <label for="<?php echo $this->get_field_id( 'count' ); ?>"><?php echo __('Number of Posts:','accelerated-mobile-pages') ?>
150
- <input class="widefat" type="number" id="<?php echo $this->get_field_id( 'count' ); ?>" name="<?php echo $this->get_field_name( 'count' ); ?>" value="<?php echo esc_attr( $ampforwp_category_count ); ?>" />
151
  </label>
152
  </p>
153
  <!-- text End Here -->
154
  <p>
155
  <!-- radio buttons starts Here -->
156
- <label for="<?php echo $this->get_field_id( 'showButton' ); ?>" value="<?php echo esc_attr( $ampforwp_title );?>"><?php echo __('Show View more Button:','accelerated-mobile-pages') ?></label><br>
157
- <label for="<?php echo $this->get_field_id('show_button_1'); ?>">
158
- <input class="widefat" id="<?php echo $this->get_field_id('show_button_1'); ?>" name="<?php echo $this->get_field_name('showButton'); ?>" type="radio" value="yes" <?php if($radio_buttons === 'yes'){ echo 'checked="checked"'; } ?> /><?php echo __('Yes ','accelerated-mobile-pages'); ?>
159
  </label>
160
- <label for="<?php echo $this->get_field_id('show_button_2'); ?>">
161
- <input class="widefat" id="<?php echo $this->get_field_id('show_button_2'); ?>" name="<?php echo $this->get_field_name('showButton'); ?>" type="radio" value="no" <?php if($radio_buttons === 'no'){ echo 'checked="checked"'; } ?> /><?php echo __(' No','accelerated-mobile-pages'); ?>
162
  </label>
163
  <!-- radio buttons Ends Here -->
164
  </p>
165
 
166
  <p>
167
  <!-- Excerpt related code starts Here -->
168
- <label for="<?php echo $this->get_field_id( 'showExcerpt' ); ?>" value="<?php echo esc_attr( $ampforwp_title );?>"> <?php echo __('Show Excerpt:','accelerated-mobile-pages') ?></label><br>
169
- <label for="<?php echo $this->get_field_id('show_button_3'); ?>">
170
- <input class="widefat" id="<?php echo $this->get_field_id('show_button_3'); ?>" name="<?php echo $this->get_field_name('showExcerpt'); ?>" type="radio" value="yes" <?php if($excerpt_buttons === 'yes'){ echo 'checked="checked"'; } ?> /><?php echo __('Yes ','accelerated-mobile-pages'); ?>
171
  </label>
172
- <label for="<?php echo $this->get_field_id('show_button_4'); ?>">
173
- <input class="widefat" id="<?php echo $this->get_field_id('show_button_4'); ?>" name="<?php echo $this->get_field_name('showExcerpt'); ?>" type="radio" value="no" <?php if($excerpt_buttons === 'no'){ echo 'checked="checked"'; } ?> /><?php echo __(' No','accelerated-mobile-pages'); ?>
174
  </label>
175
  <!-- Excerpt related code Ends Here -->
176
  </p>
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  class AMPFORWP_Categories_Widget extends WP_Widget {
7
 
8
  // Set up the widget name and description.
9
  public function __construct() {
10
  $widget_options = array(
11
  'classname' => 'ampforwp_categories_widget',
12
+ 'description' => esc_html__('This Widget adds categories where necessary in AMP Pages','accelerated-mobile-pages')
13
  );
14
+ parent::__construct( 'ampforwp_categories_widget', esc_html__('AMP Categories Module','accelerated-mobile-pages'), $widget_options );
15
  }
16
 
17
 
54
 
55
  if ( $the_query->have_posts() ) {
56
  echo '<div class="amp-wp-content amp_cb_module amp-category-block"><ul>';
57
+ echo '<li class="amp_module_title"><span>'.esc_attr($ampforwp_title) .'</span></li>';
58
  while ( $the_query->have_posts() ) {
59
  $the_query->the_post();
60
  $ampforwp_post_url = get_permalink(); ?>
62
  <?php if ( ampforwp_has_post_thumbnail() ) {
63
  $thumb_url = ampforwp_get_post_thumbnail('url');
64
  ?>
65
+ <a href="<?php echo esc_url(ampforwp_url_controller($ampforwp_post_url));?>"><amp-img class="ampforwp_wc_shortcode_img" src=<?php echo $thumb_url ?> width=150 height=150 layout=responsive></amp-img></a>
66
  <?php } ?>
67
 
68
  <a class="ampforwp_wc_shortcode_title" href="<?php echo ampforwp_url_controller($ampforwp_post_url) ;?>">
88
  //show more link
89
  if( $ampforwp_category_link === 'yes' && ! empty( $ampforwp_category_id ) ) {
90
 
91
+ $category_link = '<a class="amp-category-block-btn" href="'.ampforwp_url_controller(get_category_link( $ampforwp_category_id) ).'">'. esc_html(ampforwp_translation($redux_builder_amp['amp-translator-show-more-text'], 'View More Posts (Widget Button)')).'</a>';
92
  } else {
93
+ $category_link = '<a class="amp-category-block-btn" href="'.ampforwp_url_controller( home_url() ).'">'. esc_html(ampforwp_translation($redux_builder_amp['amp-translator-show-more-text'], 'View More Posts (Widget Button)')).'</a>';
94
  }
95
  if( $ampforwp_category_link === 'no' ) {
96
  $category_link = '';
97
  }
98
 
99
+ echo $category_link;
100
 
101
  echo '</ul> <div class="cb"></div> </div>';
102
 
123
  <!-- Form Ends Here -->
124
  <p>
125
  <!-- text Start Here -->
126
+ <label for="<?php echo esc_attr($this->get_field_id( 'title' )); ?>"><?php esc_attr_e('Title:','accelerated-mobile-pages') ?>
127
+ <input class="widefat" type="text" id="<?php echo esc_attr($this->get_field_id( 'title' )); ?>" name="<?php echo esc_attr($this->get_field_name( 'title' )); ?>" value="<?php echo esc_attr( $ampforwp_title ); ?>" />
128
  </label><br>
129
  <!-- text End Here -->
130
  </p>
131
  <!-- select Start Here -->
132
  <p>
133
+ <label for="<?php echo esc_attr( $this->get_field_id( 'category' ) ); ?>"><?php esc_attr_e('Category:','accelerated-mobile-pages') ?>
134
+ <select id="<?php echo esc_attr($this->get_field_id('category')); ?>" name="<?php echo esc_attr($this->get_field_name('category')); ?>" class="widefat" value>
135
  <?php
136
 
137
  $categories = get_categories( array(
141
 
142
  echo '<option selected value="none">Recent Posts </option>';
143
  foreach( $categories as $category ) {
144
+ echo '<option '. selected( $instance['category'], $category->term_id) . ' value="'. esc_attr($category->term_id) . '">' . esc_attr($category->name) . '</option>';
145
  } ?>
146
  </select>
147
  </label>
150
 
151
  <p>
152
  <!-- text starts Here -->
153
+ <label for="<?php echo esc_attr($this->get_field_id( 'count' )); ?>"><?php esc_attr_e('Number of Posts:','accelerated-mobile-pages') ?>
154
+ <input class="widefat" type="number" id="<?php echo esc_attr($this->get_field_id( 'count' )); ?>" name="<?php echo esc_attr($this->get_field_name( 'count' )); ?>" value="<?php echo esc_attr( $ampforwp_category_count ); ?>" />
155
  </label>
156
  </p>
157
  <!-- text End Here -->
158
  <p>
159
  <!-- radio buttons starts Here -->
160
+ <label for="<?php echo esc_attr($this->get_field_id( 'showButton' )); ?>" value="<?php echo esc_attr( $ampforwp_title );?>"><?php esc_attr_e('Show View more Button:','accelerated-mobile-pages') ?></label><br>
161
+ <label for="<?php echo esc_attr($this->get_field_id('show_button_1')); ?>">
162
+ <input class="widefat" id="<?php echo esc_attr($this->get_field_id('show_button_1')); ?>" name="<?php echo esc_attr($this->get_field_name('showButton')); ?>" type="radio" value="yes" <?php if($radio_buttons === 'yes'){ echo 'checked="checked"'; } ?> /><?php esc_attr_e('Yes ','accelerated-mobile-pages'); ?>
163
  </label>
164
+ <label for="<?php echo esc_attr($this->get_field_id('show_button_2')); ?>">
165
+ <input class="widefat" id="<?php echo esc_attr($this->get_field_id('show_button_2')); ?>" name="<?php echo esc_attr($this->get_field_name('showButton')); ?>" type="radio" value="no" <?php if($radio_buttons === 'no'){ echo 'checked="checked"'; } ?> /><?php esc_attr_e(' No','accelerated-mobile-pages'); ?>
166
  </label>
167
  <!-- radio buttons Ends Here -->
168
  </p>
169
 
170
  <p>
171
  <!-- Excerpt related code starts Here -->
172
+ <label for="<?php echo esc_attr($this->get_field_id( 'showExcerpt' )); ?>" value="<?php echo esc_attr( $ampforwp_title );?>"> <?php esc_attr_e('Show Excerpt:','accelerated-mobile-pages') ?></label><br>
173
+ <label for="<?php echo esc_attr($this->get_field_id('show_button_3')); ?>">
174
+ <input class="widefat" id="<?php echo esc_attr($this->get_field_id('show_button_3')); ?>" name="<?php echo esc_attr($this->get_field_name('showExcerpt')); ?>" type="radio" value="yes" <?php if($excerpt_buttons === 'yes'){ echo 'checked="checked"'; } ?> /><?php esc_attr_e('Yes ','accelerated-mobile-pages'); ?>
175
  </label>
176
+ <label for="<?php echo esc_attr($this->get_field_id('show_button_4')); ?>">
177
+ <input class="widefat" id="<?php echo esc_attr($this->get_field_id('show_button_4')); ?>" name="<?php echo esc_attr($this->get_field_name('showExcerpt')); ?>" type="radio" value="no" <?php if($excerpt_buttons === 'no'){ echo 'checked="checked"'; } ?> /><?php esc_attr_e(' No','accelerated-mobile-pages'); ?>
178
  </label>
179
  <!-- Excerpt related code Ends Here -->
180
  </p>
templates/custom-amp-content.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  // Adding Custom meta Sanitizer to sanitize the custom content added throught tinymce post meta
3
  add_filter( 'amp_post_template_data', 'ampforwp_custom_post_content_sanitizer', 10, 2 );
4
 
@@ -84,25 +88,25 @@ function ampforwp_custom_content_meta_register() {
84
 
85
  if ( $user_level ) {
86
  if ( $redux_builder_amp['amp-on-off-for-all-posts'] ) {
87
- add_meta_box( 'custom_content_editor', __( 'Custom AMP Editor', 'accelerated-mobile-pages' ), 'amp_content_editor_title_callback', 'post','normal', 'default' );
88
  }
89
 
90
  if ( $redux_builder_amp['amp-on-off-for-all-pages'] ) {
91
- add_meta_box( 'custom_content_editor', __( 'Custom AMP Editor','accelerated-mobile-pages' ), 'amp_content_editor_title_callback', 'page','normal', 'default' );
92
  }
93
  // Custom AMP Editor for Custom Post Types
94
  $post_types = ampforwp_get_all_post_types();
95
  if ( $post_types ) {
96
  foreach ( $post_types as $post_type ) {
97
  if ( 'post' !== $post_type && 'page' !== $post_type ) {
98
- add_meta_box( 'custom_content_editor', __( 'Custom AMP Editor', 'accelerated-mobile-pages' ), 'amp_content_editor_title_callback', $post_type ,'normal', 'default' );
99
  }
100
  }
101
  }
102
 
103
  // Assign Pagebuilder Meta Box // Legecy pagebuilder
104
  if ( $redux_builder_amp['ampforwp-content-builder'] ) {
105
- add_meta_box( 'custom_content_sidebar', __( 'AMP Page Builder', 'accelerated-mobile-pages' ), 'amp_content_sidebar_callback', 'page','side', 'default' );
106
  }
107
  }
108
 
@@ -118,8 +122,8 @@ function amp_content_sidebar_callback( $post ) {
118
  $amp_content_sidebar = get_post_meta($current_post_id, 'ampforwp_custom_sidebar_select', true);
119
  $amp_content_sidebar = esc_attr($amp_content_sidebar); ?>
120
  <select name="ampforwp_custom_sidebar_select" id="ampforwp-sidebars-page-sidebar-name">
121
- <option <?php if ( isset ( $amp_content_sidebar ) ) selected( $amp_content_sidebar, 'none' ); ?> value="none"><?php _e( 'None', 'accelerated-mobile-pages' ); ?></option>
122
- <option <?php if ( isset ( $amp_content_sidebar ) ) selected( $amp_content_sidebar, 'layout-builder' ); ?> value="layout-builder"><?php _e( 'Page Builder (AMP)', 'accelerated-mobile-pages' ); ?></option>
123
  </select>
124
  <p>Assign an AMP Page Builder Widget Area which will be used AMP page.<br /><a href="https://ampforwp.com/tutorials/page-builder">(Need Help?)</a></p>
125
 
@@ -143,8 +147,8 @@ function amp_content_editor_title_callback( $post ) {
143
  <label for="meta-checkbox">
144
  <p>
145
  <input type="checkbox" name="ampforwp_custom_content_editor_checkbox" id="meta-checkbox" value="yes" <?php if ( isset ( $amp_content_on_off ) ) checked( $amp_content_on_off, 'yes' ); ?> />
146
- <?php echo __( 'Use This Content as AMP Content','accelerated-mobile-pages' )?> </p>
147
- <?php echo __('<p>If you want to add some special tags, then please use normal HTML into this area, it will automatically convert them into AMP compatible tags.</p>','accelerated-mobile-pages') ?>
148
  </label>
149
 
150
  <!--HTML content Ends here-->
@@ -156,6 +160,9 @@ function amp_content_editor_title_callback( $post ) {
156
 
157
  // Save Rating Meta Field function
158
  function amp_content_editor_meta_save( $post_id ) {
 
 
 
159
  // Checks save status
160
  $is_autosave = wp_is_post_autosave( $post_id );
161
  $is_revision = wp_is_post_revision( $post_id );
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  // Adding Custom meta Sanitizer to sanitize the custom content added throught tinymce post meta
7
  add_filter( 'amp_post_template_data', 'ampforwp_custom_post_content_sanitizer', 10, 2 );
8
 
88
 
89
  if ( $user_level ) {
90
  if ( $redux_builder_amp['amp-on-off-for-all-posts'] ) {
91
+ add_meta_box( 'custom_content_editor', esc_html__( 'Custom AMP Editor', 'accelerated-mobile-pages' ), 'amp_content_editor_title_callback', 'post','normal', 'default' );
92
  }
93
 
94
  if ( $redux_builder_amp['amp-on-off-for-all-pages'] ) {
95
+ add_meta_box( 'custom_content_editor', esc_html__( 'Custom AMP Editor','accelerated-mobile-pages' ), 'amp_content_editor_title_callback', 'page','normal', 'default' );
96
  }
97
  // Custom AMP Editor for Custom Post Types
98
  $post_types = ampforwp_get_all_post_types();
99
  if ( $post_types ) {
100
  foreach ( $post_types as $post_type ) {
101
  if ( 'post' !== $post_type && 'page' !== $post_type ) {
102
+ add_meta_box( 'custom_content_editor', esc_html__( 'Custom AMP Editor', 'accelerated-mobile-pages' ), 'amp_content_editor_title_callback', $post_type ,'normal', 'default' );
103
  }
104
  }
105
  }
106
 
107
  // Assign Pagebuilder Meta Box // Legecy pagebuilder
108
  if ( $redux_builder_amp['ampforwp-content-builder'] ) {
109
+ add_meta_box( 'custom_content_sidebar', esc_html__( 'AMP Page Builder', 'accelerated-mobile-pages' ), 'amp_content_sidebar_callback', 'page','side', 'default' );
110
  }
111
  }
112
 
122
  $amp_content_sidebar = get_post_meta($current_post_id, 'ampforwp_custom_sidebar_select', true);
123
  $amp_content_sidebar = esc_attr($amp_content_sidebar); ?>
124
  <select name="ampforwp_custom_sidebar_select" id="ampforwp-sidebars-page-sidebar-name">
125
+ <option <?php if ( isset ( $amp_content_sidebar ) ) selected( $amp_content_sidebar, 'none' ); ?> value="none"><?php esc_attr_e( 'None', 'accelerated-mobile-pages' ); ?></option>
126
+ <option <?php if ( isset ( $amp_content_sidebar ) ) selected( $amp_content_sidebar, 'layout-builder' ); ?> value="layout-builder"><?php esc_attr_e( 'Page Builder (AMP)', 'accelerated-mobile-pages' ); ?></option>
127
  </select>
128
  <p>Assign an AMP Page Builder Widget Area which will be used AMP page.<br /><a href="https://ampforwp.com/tutorials/page-builder">(Need Help?)</a></p>
129
 
147
  <label for="meta-checkbox">
148
  <p>
149
  <input type="checkbox" name="ampforwp_custom_content_editor_checkbox" id="meta-checkbox" value="yes" <?php if ( isset ( $amp_content_on_off ) ) checked( $amp_content_on_off, 'yes' ); ?> />
150
+ <?php esc_attr_e( 'Use This Content as AMP Content','accelerated-mobile-pages' )?> </p>
151
+ <p><?php esc_attr_e('If you want to add some special tags, then please use normal HTML into this area, it will automatically convert them into AMP compatible tags.','accelerated-mobile-pages') ?></p>
152
  </label>
153
 
154
  <!--HTML content Ends here-->
160
 
161
  // Save Rating Meta Field function
162
  function amp_content_editor_meta_save( $post_id ) {
163
+ if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) {
164
+ return ;
165
+ }
166
  // Checks save status
167
  $is_autosave = wp_is_post_autosave( $post_id );
168
  $is_revision = wp_is_post_revision( $post_id );
templates/custom-sanitizer.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  require_once( AMP__DIR__ . '/includes/utils/class-amp-dom-utils.php' );
3
  require_once( AMP__DIR__ . '/includes/sanitizers/class-amp-base-sanitizer.php' );
4
  require_once( AMP__DIR__ . '/includes/embeds/class-amp-base-embed-handler.php' );
@@ -62,7 +66,7 @@ class AMPFORWP_Content {
62
  $embed_handler = new $embed_handler_class( array_merge( $this->args, $args ) );
63
 
64
  if ( ! is_subclass_of( $embed_handler, 'AMP_Base_Embed_Handler' ) ) {
65
- _doing_it_wrong( __METHOD__, sprintf( __( 'Embed Handler (%s) must extend `AMP_Embed_Handler`', 'accelerated-mobile-pages' ), $embed_handler_class ), '0.1' );
66
  continue;
67
  }
68
 
@@ -98,14 +102,14 @@ class AMPFORWP_Content_Sanitizer {
98
 
99
  foreach ( $sanitizer_classes as $sanitizer_class => $args ) {
100
  if ( ! class_exists( $sanitizer_class ) ) {
101
- _doing_it_wrong( __METHOD__, sprintf( __( 'Sanitizer (%s) class does not exist', 'accelerated-mobile-pages' ), esc_html( $sanitizer_class ) ), '0.4.1' );
102
  continue;
103
  }
104
 
105
  $sanitizer = new $sanitizer_class( $dom, array_merge( $global_args, $args ) );
106
 
107
  if ( ! is_subclass_of( $sanitizer, 'AMP_Base_Sanitizer' ) ) {
108
- _doing_it_wrong( __METHOD__, sprintf( __( 'Sanitizer (%s) must extend `AMP_Base_Sanitizer`', 'accelerated-mobile-pages' ), esc_html( $sanitizer_class ) ), '0.1' );
109
  continue;
110
  }
111
 
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  require_once( AMP__DIR__ . '/includes/utils/class-amp-dom-utils.php' );
7
  require_once( AMP__DIR__ . '/includes/sanitizers/class-amp-base-sanitizer.php' );
8
  require_once( AMP__DIR__ . '/includes/embeds/class-amp-base-embed-handler.php' );
66
  $embed_handler = new $embed_handler_class( array_merge( $this->args, $args ) );
67
 
68
  if ( ! is_subclass_of( $embed_handler, 'AMP_Base_Embed_Handler' ) ) {
69
+ _doing_it_wrong( __METHOD__, sprintf( esc_attr_e( 'Embed Handler (%s) must extend `AMP_Embed_Handler`', 'accelerated-mobile-pages' ), $embed_handler_class ), '0.1' );
70
  continue;
71
  }
72
 
102
 
103
  foreach ( $sanitizer_classes as $sanitizer_class => $args ) {
104
  if ( ! class_exists( $sanitizer_class ) ) {
105
+ _doing_it_wrong( __METHOD__, sprintf( esc_attr_e( 'Sanitizer (%s) class does not exist', 'accelerated-mobile-pages' ), esc_html( $sanitizer_class ) ), '0.4.1' );
106
  continue;
107
  }
108
 
109
  $sanitizer = new $sanitizer_class( $dom, array_merge( $global_args, $args ) );
110
 
111
  if ( ! is_subclass_of( $sanitizer, 'AMP_Base_Sanitizer' ) ) {
112
+ _doing_it_wrong( __METHOD__, sprintf( esc_attr_e( 'Sanitizer (%s) must extend `AMP_Base_Sanitizer`', 'accelerated-mobile-pages' ), esc_html( $sanitizer_class ) ), '0.1' );
113
  continue;
114
  }
115
 
templates/customizer/customizer-controls.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  /**
3
  * Sortable multi check boxes custom control.
4
  * @since 0.1.0
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  /**
7
  * Sortable multi check boxes custom control.
8
  * @since 0.1.0
templates/customizer/customizer-new.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  class AMPFORWP_Customizer_Design_Contols extends AMP_Customizer_Design_Settings {
3
  const NEW_COLOR_SCHEME = 'light';
4
 
@@ -28,17 +32,6 @@ class AMPFORWP_Customizer_Design_Contols extends AMP_Customizer_Design_Settings
28
  )
29
  );
30
 
31
- // $wp_customize->add_setting(
32
- // 'ampforwp_design[amp_design_type]', /* option name */
33
- // array(
34
- // 'default' => '3',
35
- // 'transport' => 'postMessage',
36
- // 'type' => 'option',
37
- // 'capability' => 'manage_options',
38
- // 'priority' => 10,
39
- // )
40
- // );
41
-
42
  }
43
 
44
  public static function register_customizer_ui( $wp_customize ) {
@@ -57,26 +50,13 @@ class AMPFORWP_Customizer_Design_Contols extends AMP_Customizer_Design_Settings
57
  array(
58
  'section' => 'amp_design',
59
  'settings' => 'ampforwp_design[elements]',
60
- 'label' => __( 'Design Manager', 'accelerated-mobile-pages' ),
61
- 'description' => __( 'Enable and reorder Design Elements.', 'accelerated-mobile-pages' ),
62
  'choices' => $choices,
63
  'priority' => 9,
64
  )
65
  )
66
  );
67
-
68
- // Current AMP Design
69
- // $wp_customize->add_control( 'ampforwp_design[amp_design_type]', array(
70
- // 'settings' => 'ampforwp_design[amp_design_type]',
71
- // 'label' => __( 'Current AMP Design', 'ampforwp' ),
72
- // 'section' => 'amp_design',
73
- // 'type' => 'select',
74
- // 'priority' => 30,
75
- // 'choices' => array(
76
- // '1' => 'one',
77
- // '2' => 'two',
78
- // '3' => 'three' ),
79
- // ));
80
  }
81
 
82
  public static function enqueue_customizer_preview_scripts() {
@@ -153,54 +133,54 @@ class AMPFORWP_Customizer_Design_Contols extends AMP_Customizer_Design_Settings
153
  /* Meta info */
154
  $services['meta_info'] = array(
155
  'id' => 'meta_info',
156
- 'label' => __( 'Meta info', 'accelerated-mobile-pages' ),
157
  );
158
 
159
  /* title */
160
  $services['title'] = array(
161
  'id' => 'title',
162
- 'label' => __( 'Title', 'accelerated-mobile-pages' ),
163
  );
164
  /* Breadcrumbs */
165
  $services['bread_crumbs'] = array(
166
  'id' => 'bread_crumbs',
167
- 'label' => __( 'Breadcrumb', 'accelerated-mobile-pages' ),
168
  );
169
 
170
  /* Featured Image */
171
  $services['featured_image'] = array(
172
  'id' => 'featured_image',
173
- 'label' => __( 'Featured Image', 'accelerated-mobile-pages' ),
174
  );
175
 
176
  /* The Content */
177
  $services['content'] = array(
178
  'id' => 'content',
179
- 'label' => __( 'The Content', 'accelerated-mobile-pages' ),
180
  );
181
 
182
  /* Meta Taxonomy */
183
  $services['meta_taxonomy'] = array(
184
  'id' => 'meta_taxonomy',
185
- 'label' => __( 'Categories and Tags', 'accelerated-mobile-pages'),
186
  );
187
 
188
  /* Social Icons */
189
  $services['social_icons'] = array(
190
  'id' => 'social_icons',
191
- 'label' => __( 'Social Icons', 'accelerated-mobile-pages' ),
192
  );
193
 
194
  /* Comments */
195
  $services['comments'] = array(
196
  'id' => 'comments',
197
- 'label' => __( 'Comments', 'accelerated-mobile-pages' ),
198
  );
199
 
200
  /* Related Posts */
201
  $services['related_posts'] = array(
202
  'id' => 'related_posts',
203
- 'label' => __( 'Related Posts', 'accelerated-mobile-pages' ),
204
  );
205
 
206
  return apply_filters( 'ampforwp_controls', $services );
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  class AMPFORWP_Customizer_Design_Contols extends AMP_Customizer_Design_Settings {
7
  const NEW_COLOR_SCHEME = 'light';
8
 
32
  )
33
  );
34
 
 
 
 
 
 
 
 
 
 
 
 
35
  }
36
 
37
  public static function register_customizer_ui( $wp_customize ) {
50
  array(
51
  'section' => 'amp_design',
52
  'settings' => 'ampforwp_design[elements]',
53
+ 'label' => esc_html__( 'Design Manager', 'accelerated-mobile-pages' ),
54
+ 'description' => esc_html__( 'Enable and reorder Design Elements.', 'accelerated-mobile-pages' ),
55
  'choices' => $choices,
56
  'priority' => 9,
57
  )
58
  )
59
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  }
61
 
62
  public static function enqueue_customizer_preview_scripts() {
133
  /* Meta info */
134
  $services['meta_info'] = array(
135
  'id' => 'meta_info',
136
+ 'label' => esc_html__( 'Meta info', 'accelerated-mobile-pages' ),
137
  );
138
 
139
  /* title */
140
  $services['title'] = array(
141
  'id' => 'title',
142
+ 'label' => esc_html__( 'Title', 'accelerated-mobile-pages' ),
143
  );
144
  /* Breadcrumbs */
145
  $services['bread_crumbs'] = array(
146
  'id' => 'bread_crumbs',
147
+ 'label' => esc_html__( 'Breadcrumb', 'accelerated-mobile-pages' ),
148
  );
149
 
150
  /* Featured Image */
151
  $services['featured_image'] = array(
152
  'id' => 'featured_image',
153
+ 'label' => esc_html__( 'Featured Image', 'accelerated-mobile-pages' ),
154
  );
155
 
156
  /* The Content */
157
  $services['content'] = array(
158
  'id' => 'content',
159
+ 'label' => esc_html__( 'The Content', 'accelerated-mobile-pages' ),
160
  );
161
 
162
  /* Meta Taxonomy */
163
  $services['meta_taxonomy'] = array(
164
  'id' => 'meta_taxonomy',
165
+ 'label' => esc_html__( 'Categories and Tags', 'accelerated-mobile-pages'),
166
  );
167
 
168
  /* Social Icons */
169
  $services['social_icons'] = array(
170
  'id' => 'social_icons',
171
+ 'label' => esc_html__( 'Social Icons', 'accelerated-mobile-pages' ),
172
  );
173
 
174
  /* Comments */
175
  $services['comments'] = array(
176
  'id' => 'comments',
177
+ 'label' => esc_html__( 'Comments', 'accelerated-mobile-pages' ),
178
  );
179
 
180
  /* Related Posts */
181
  $services['related_posts'] = array(
182
  'id' => 'related_posts',
183
+ 'label' => esc_html__( 'Related Posts', 'accelerated-mobile-pages' ),
184
  );
185
 
186
  return apply_filters( 'ampforwp_controls', $services );
templates/customizer/customizer.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  class AMPFORWP_Customizer_Design_Contols extends AMP_Customizer_Design_Settings {
3
  const NEW_COLOR_SCHEME = 'light';
4
 
@@ -28,17 +32,6 @@ class AMPFORWP_Customizer_Design_Contols extends AMP_Customizer_Design_Settings
28
  )
29
  );
30
 
31
- // $wp_customize->add_setting(
32
- // 'ampforwp_design[amp_design_type]', /* option name */
33
- // array(
34
- // 'default' => '3',
35
- // 'transport' => 'postMessage',
36
- // 'type' => 'option',
37
- // 'capability' => 'manage_options',
38
- // 'priority' => 10,
39
- // )
40
- // );
41
-
42
  }
43
 
44
  public function register_customizer_ui( $wp_customize ) {
@@ -57,26 +50,13 @@ class AMPFORWP_Customizer_Design_Contols extends AMP_Customizer_Design_Settings
57
  array(
58
  'section' => 'amp_design',
59
  'settings' => 'ampforwp_design[elements]',
60
- 'label' => __( 'Design Manager', 'accelerated-mobile-pages' ),
61
- 'description' => __( 'Enable and reorder Design Elements.', 'accelerated-mobile-pages' ),
62
  'choices' => $choices,
63
  'priority' => 9,
64
  )
65
  )
66
  );
67
-
68
- // Current AMP Design
69
- // $wp_customize->add_control( 'ampforwp_design[amp_design_type]', array(
70
- // 'settings' => 'ampforwp_design[amp_design_type]',
71
- // 'label' => __( 'Current AMP Design', 'ampforwp' ),
72
- // 'section' => 'amp_design',
73
- // 'type' => 'select',
74
- // 'priority' => 30,
75
- // 'choices' => array(
76
- // '1' => 'one',
77
- // '2' => 'two',
78
- // '3' => 'three' ),
79
- // ));
80
  }
81
 
82
  public static function enqueue_customizer_preview_scripts() {
@@ -153,53 +133,53 @@ class AMPFORWP_Customizer_Design_Contols extends AMP_Customizer_Design_Settings
153
  /* Meta info */
154
  $services['meta_info'] = array(
155
  'id' => 'meta_info',
156
- 'label' => __( 'Meta info', 'accelerated-mobile-pages' ),
157
  );
158
 
159
  /* title */
160
  $services['title'] = array(
161
  'id' => 'title',
162
- 'label' => __( 'Title', 'accelerated-mobile-pages' ),
163
  );
164
  /* Breadcrumbs */
165
  $services['bread_crumbs'] = array(
166
  'id' => 'bread_crumbs',
167
- 'label' => __( 'Breadcrumb', 'accelerated-mobile-pages' ),
168
  );
169
  /* Featured Image */
170
  $services['featured_image'] = array(
171
  'id' => 'featured_image',
172
- 'label' => __( 'Featured Image', 'accelerated-mobile-pages' ),
173
  );
174
 
175
  /* The Content */
176
  $services['content'] = array(
177
  'id' => 'content',
178
- 'label' => __( 'The Content', 'accelerated-mobile-pages' ),
179
  );
180
 
181
  /* Meta Taxonomy */
182
  $services['meta_taxonomy'] = array(
183
  'id' => 'meta_taxonomy',
184
- 'label' => __( 'Categories and Tags', 'accelerated-mobile-pages'),
185
  );
186
 
187
  /* Social Icons */
188
  $services['social_icons'] = array(
189
  'id' => 'social_icons',
190
- 'label' => __( 'Social Icons', 'accelerated-mobile-pages' ),
191
  );
192
 
193
  /* Comments */
194
  $services['comments'] = array(
195
  'id' => 'comments',
196
- 'label' => __( 'Comments', 'accelerated-mobile-pages' ),
197
  );
198
 
199
  /* Related Posts */
200
  $services['related_posts'] = array(
201
  'id' => 'related_posts',
202
- 'label' => __( 'Related Posts', 'accelerated-mobile-pages' ),
203
  );
204
 
205
  return apply_filters( 'ampforwp_controls', $services );
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  class AMPFORWP_Customizer_Design_Contols extends AMP_Customizer_Design_Settings {
7
  const NEW_COLOR_SCHEME = 'light';
8
 
32
  )
33
  );
34
 
 
 
 
 
 
 
 
 
 
 
 
35
  }
36
 
37
  public function register_customizer_ui( $wp_customize ) {
50
  array(
51
  'section' => 'amp_design',
52
  'settings' => 'ampforwp_design[elements]',
53
+ 'label' => esc_html__( 'Design Manager', 'accelerated-mobile-pages' ),
54
+ 'description' => esc_html__( 'Enable and reorder Design Elements.', 'accelerated-mobile-pages' ),
55
  'choices' => $choices,
56
  'priority' => 9,
57
  )
58
  )
59
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  }
61
 
62
  public static function enqueue_customizer_preview_scripts() {
133
  /* Meta info */
134
  $services['meta_info'] = array(
135
  'id' => 'meta_info',
136
+ 'label' => esc_html__( 'Meta info', 'accelerated-mobile-pages' ),
137
  );
138
 
139
  /* title */
140
  $services['title'] = array(
141
  'id' => 'title',
142
+ 'label' => esc_html__( 'Title', 'accelerated-mobile-pages' ),
143
  );
144
  /* Breadcrumbs */
145
  $services['bread_crumbs'] = array(
146
  'id' => 'bread_crumbs',
147
+ 'label' => esc_html__( 'Breadcrumb', 'accelerated-mobile-pages' ),
148
  );
149
  /* Featured Image */
150
  $services['featured_image'] = array(
151
  'id' => 'featured_image',
152
+ 'label' => esc_html__( 'Featured Image', 'accelerated-mobile-pages' ),
153
  );
154
 
155
  /* The Content */
156
  $services['content'] = array(
157
  'id' => 'content',
158
+ 'label' => esc_html__( 'The Content', 'accelerated-mobile-pages' ),
159
  );
160
 
161
  /* Meta Taxonomy */
162
  $services['meta_taxonomy'] = array(
163
  'id' => 'meta_taxonomy',
164
+ 'label' => esc_html__( 'Categories and Tags', 'accelerated-mobile-pages'),
165
  );
166
 
167
  /* Social Icons */
168
  $services['social_icons'] = array(
169
  'id' => 'social_icons',
170
+ 'label' => esc_html__( 'Social Icons', 'accelerated-mobile-pages' ),
171
  );
172
 
173
  /* Comments */
174
  $services['comments'] = array(
175
  'id' => 'comments',
176
+ 'label' => esc_html__( 'Comments', 'accelerated-mobile-pages' ),
177
  );
178
 
179
  /* Related Posts */
180
  $services['related_posts'] = array(
181
  'id' => 'related_posts',
182
+ 'label' => esc_html__( 'Related Posts', 'accelerated-mobile-pages' ),
183
  );
184
 
185
  return apply_filters( 'ampforwp_controls', $services );
templates/design-manager.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  if ( is_customize_preview() ) {
3
  // Load all the elements in the customizer as we want all the elements in design-manager
4
  add_filter( 'ampforwp_design_elements', 'ampforwp_add_element_the_title' );
1
  <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
  if ( is_customize_preview() ) {
7
  // Load all the elements in the customizer as we want all the elements in design-manager
8
  add_filter( 'ampforwp_design_elements', 'ampforwp_add_element_the_title' );
templates/design-manager/design-1/404.php CHANGED
@@ -1,5 +1,5 @@
1
  <!doctype html>
2
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) ); ?>>
3
  <head>
4
  <meta charset="utf-8">
5
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
@@ -19,7 +19,7 @@
19
  <article class="amp-wp-article amp-wp-article-header">
20
  <?php do_action('ampforwp_post_before_design_elements') ?>
21
  <h1 class="amp-wp-title"><?php global $redux_builder_amp; echo
22
- ampforwp_translation( $redux_builder_amp['amp-translator-fourohfour'], 'Oops! That page can’t be found.'); ?></h1>
23
  <?php do_action('ampforwp_post_after_design_elements') ?>
24
  </article>
25
 
1
  <!doctype html>
2
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) )); ?>>
3
  <head>
4
  <meta charset="utf-8">
5
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
19
  <article class="amp-wp-article amp-wp-article-header">
20
  <?php do_action('ampforwp_post_before_design_elements') ?>
21
  <h1 class="amp-wp-title"><?php global $redux_builder_amp; echo
22
+ esc_attr(ampforwp_translation( $redux_builder_amp['amp-translator-fourohfour'], 'Oops! That page can’t be found.')); ?></h1>
23
  <?php do_action('ampforwp_post_after_design_elements') ?>
24
  </article>
25
 
templates/design-manager/design-1/archive.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php global $redux_builder_amp; global $wp; ?>
2
  <!doctype html>
3
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) ); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
@@ -25,7 +25,7 @@
25
  $amp_component_scripts = $sanitizer->amp_scripts;
26
  if ( $sanitizer && $amp_component_scripts) {
27
  foreach ($amp_component_scripts as $ampforwp_service => $ampforwp_js_file) { ?>
28
- <script custom-element="<?php echo $ampforwp_service; ?>" src="<?php echo $ampforwp_js_file; ?>" async></script> <?php
29
  }
30
  }?>
31
  <style amp-custom>
@@ -69,7 +69,7 @@
69
  }
70
  if($paged <= '1') {?>
71
  <div class="amp-wp-content taxonomy-description">
72
- <?php echo $arch_desc ; ?>
73
  </div> <?php
74
  }
75
  }
@@ -84,7 +84,7 @@
84
  if(!empty($cat_childs)){
85
  echo "<div class='amp-sub-archives'><ul>";
86
  foreach ($cat_childs as $cat_child ) {
87
- echo '<li><a href="' . get_term_link( $cat_child ) . '">' . $cat_child->name . '</a></li>';
88
  }
89
  echo "</ul></div>";
90
  }
@@ -110,7 +110,7 @@
110
  <time> <?php
111
  $post_date = human_time_diff( get_the_time('U', get_the_ID() ), current_time('timestamp') ) .' '. ampforwp_translation( $redux_builder_amp['amp-translator-ago-date-text'],'ago' );
112
  $post_date = apply_filters('ampforwp_modify_post_date',$post_date);
113
- echo $post_date ; ?>
114
  </time>
115
  </div>
116
 
1
  <?php global $redux_builder_amp; global $wp; ?>
2
  <!doctype html>
3
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) )); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
25
  $amp_component_scripts = $sanitizer->amp_scripts;
26
  if ( $sanitizer && $amp_component_scripts) {
27
  foreach ($amp_component_scripts as $ampforwp_service => $ampforwp_js_file) { ?>
28
+ <script custom-element="<?php echo $ampforwp_service; ?>" src="<?php echo esc_url($ampforwp_js_file); ?>" async></script> <?php
29
  }
30
  }?>
31
  <style amp-custom>
69
  }
70
  if($paged <= '1') {?>
71
  <div class="amp-wp-content taxonomy-description">
72
+ <?php echo $arch_desc;// amphtml content, no kses ?>
73
  </div> <?php
74
  }
75
  }
84
  if(!empty($cat_childs)){
85
  echo "<div class='amp-sub-archives'><ul>";
86
  foreach ($cat_childs as $cat_child ) {
87
+ echo '<li><a href="' . esc_url(get_term_link( $cat_child )) . '">' . esc_attr($cat_child->name) . '</a></li>';
88
  }
89
  echo "</ul></div>";
90
  }
110
  <time> <?php
111
  $post_date = human_time_diff( get_the_time('U', get_the_ID() ), current_time('timestamp') ) .' '. ampforwp_translation( $redux_builder_amp['amp-translator-ago-date-text'],'ago' );
112
  $post_date = apply_filters('ampforwp_modify_post_date',$post_date);
113
+ echo esc_attr($post_date) ; ?>
114
  </time>
115
  </div>
116
 
templates/design-manager/design-1/elements/bread-crumbs.php CHANGED
@@ -23,10 +23,10 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
23
  if ( !is_front_page() && !ampforwp_polylang_front_page() ) {
24
 
25
  // Build the breadcrums
26
- echo '<ul id="' . $breadcrums_id . '" class="' . $breadcrums_class . '">';
27
 
28
  // Home page
29
- echo '<li class="item-home"><a class="bread-link bread-home" href="' . esc_url(ampforwp_url_controller( get_home_url('', '/'), $home_non_amp )) . '" title="' . $home_title . '">' . $home_title . '</a></li>';
30
 
31
  if ( is_archive() && !is_tax() && !is_category() && !is_tag() && !is_author() ) {
32
 
@@ -39,7 +39,7 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
39
  $author_url= get_author_posts_url($userdata->ID);
40
  $author_url = trailingslashit($author_url);
41
  // Display author name
42
- echo '<li class="item-current item-current-' . $userdata->user_nicename . '"><a class="bread-current bread-current-' . $userdata->user_nicename . '" title="' . $userdata->display_name . '" href="'. esc_url(ampforwp_url_controller( $author_url, $archive_non_amp )). '">' . 'Author: ' . $userdata->display_name . '</a></li>';
43
 
44
  } else if ( is_archive() && is_tax() && !is_category() && !is_tag() ) {
45
 
@@ -52,15 +52,15 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
52
  $post_type_object = get_post_type_object($post_type);
53
  $post_type_archive = get_post_type_archive_link($post_type);
54
  if ( false != $post_type_archive){
55
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><a class="bread-cat bread-custom-post-type-' . $post_type . '" href="' .esc_url(ampforwp_url_controller( $post_type_archive, $archive_non_amp )) . '" title="' . $post_type_object->labels->name . '">' . $post_type_object->labels->name . '</a></li>';
56
  }
57
  else {
58
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><span class="bread-cat bread-custom-post-type-' . $post_type . '">' . $post_type_object->labels->name . '</span></li>';
59
  }
60
  }
61
 
62
  $custom_tax_name = get_queried_object()->name;
63
- echo '<li class="item-current item-archive"><strong class="bread-current bread-archive">' . $custom_tax_name . '</strong></li>';
64
  } else if ( is_single() ) {
65
 
66
  // If post is a custom post type
@@ -72,10 +72,10 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
72
  $post_type_object = get_post_type_object($post_type);
73
  $post_type_archive = get_post_type_archive_link($post_type);
74
  if ( false != $post_type_archive){
75
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><a class="bread-cat bread-custom-post-type-' . $post_type . '" href="' .esc_url(ampforwp_url_controller( $post_type_archive, $archive_non_amp )) . '" title="' . $post_type_object->labels->name . '">' . $post_type_object->labels->name . '</a></li>';
76
  }
77
  else {
78
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><span class="bread-cat bread-custom-post-type-' . $post_type . '">' . $post_type_object->labels->name . '</span></li>';
79
  }
80
  }
81
  /*Breadcrumb with tags Start*/
@@ -88,7 +88,7 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
88
  $tag_id = $post_obj->term_id;
89
  $tag_name = $post_obj->name;
90
  $tag_link = get_tag_link($tag_id);
91
- $tags_breadcrumbs .= '<li class="item-tag item-tag-' . $tag_id . ' item-tag-' . $tag_name . '"><a class="bread-tag bread-tag-' . $tag_id . ' bread-tag-' . $tag_name . '" href="' . esc_url(ampforwp_url_controller( $tag_link, $archive_non_amp )) . '" title="' . $tag_name . '">' . $tag_name . '</a></li>';
92
  }
93
  echo $tags_breadcrumbs;
94
  }
@@ -113,7 +113,7 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
113
  foreach($cat_parents as $parents) {
114
  $cat_id = get_cat_ID( $parents);
115
  $cat_link = get_category_link($cat_id);
116
- $cat_display .= '<li class="item-cat item-cat-' . $cat_id . '"><a class="bread-cat bread-cat-' . $cat_id . ' bread-cat-' . $parents. '" href="'. esc_url(ampforwp_url_controller( $cat_link, $archive_non_amp )).'" title="' . $parents . '">' . $parents . '</a></li>';
117
  }
118
  }
119
  }
@@ -140,7 +140,7 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
140
  // Else if post is in a custom taxonomy
141
  } else if(!empty($cat_id)) {
142
 
143
- echo '<li class="item-cat item-cat-' . $cat_id . ' item-cat-' . $cat_nicename . '"><a class="bread-cat bread-cat-' . $cat_id . ' bread-cat-' . $cat_nicename . '" href="' . esc_url(ampforwp_url_controller( $cat_link, $archive_non_amp )) . '" title="' . $cat_name . '">' . $cat_name . '</a></li>';
144
  }
145
 
146
  } else if ( is_category() ) {
@@ -161,7 +161,7 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
161
  // Parent page loop
162
  if ( !isset( $parents ) ) $parents = null;
163
  foreach ( $anc as $ancestor ) {
164
- $parents .= '<li class="item-parent item-parent-' . $ancestor . '"><a class="bread-parent bread-parent-' . $ancestor . '" href="' . esc_url(ampforwp_url_controller( get_permalink( $ancestor ), $archive_non_amp )) . '" title="' . get_the_title($ancestor) . '">' . get_the_title($ancestor) . '</a></li>';
165
  }
166
 
167
  // Display parent pages
@@ -185,51 +185,51 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
185
  $get_term_name = $terms[0]->name;
186
 
187
  // Display the tag name
188
- echo '<li class="item-current item-tag-' . $get_term_id . ' item-tag-' . $get_term_slug . '"><strong class="bread-current bread-tag-' . $get_term_id . ' bread-tag-' . $get_term_slug . '">' . $get_term_name . '</strong></li>';
189
  } elseif ( is_day() ) {
190
 
191
  // Day archive
192
 
193
  // Year link
194
- echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . '</a></li>';
195
 
196
  // Month link
197
- echo '<li class="item-month item-month-' . get_the_time('m') . '"><a class="bread-month bread-month-' . get_the_time('m') . '" href="' . get_month_link( get_the_time('Y'), get_the_time('m') ) . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </a></li>';
198
 
199
 
200
  // Day display
201
- echo '<li class="item-current item-' . get_the_time('j') . '"><strong class="bread-current bread-' . get_the_time('j') . '"> ' . get_the_time('jS') . ' ' . get_the_time('M') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </strong></li>';
202
 
203
  } else if ( is_month() ) {
204
 
205
  // Month Archive
206
 
207
  // Year link
208
- echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </a></li>';
209
 
210
  // Month display
211
- echo '<li class="item-month item-month-' . get_the_time('m') . '"><strong class="bread-month bread-month-' . get_the_time('m') . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </strong></li>';
212
 
213
  } else if ( is_year() ) {
214
 
215
  // Display year archive
216
- echo '<li class="item-current item-current-' . get_the_time('Y') . '"><strong class="bread-current bread-current-' . get_the_time('Y') . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives'). ' </strong></li>';
217
 
218
  } else if ( get_query_var('paged') ) {
219
 
220
  // Paginated archives
221
- echo '<li class="item-current item-current-' . get_query_var('paged') . '"><strong class="bread-current bread-current-' . get_query_var('paged') . '" title="Page ' . get_query_var('paged') . '">'. ampforwp_translation($redux_builder_amp['amp-translator-page-text'], 'Page') . ' ' . get_query_var('paged') . '</strong></li>';
222
 
223
  } else if ( is_search() ) {
224
 
225
  // Search results page
226
  echo '<li class="item-current item-current-' . get_search_query() . '"><strong class="bread-current bread-current-' . get_search_query() . '" title="Search results for: ' . get_search_query() . '">
227
- ' . ampforwp_translation($redux_builder_amp['amp-translator-breadcrumbs-search-text'], 'Search results for') . ': ' . get_search_query() . '</strong></li>';
228
 
229
  } elseif ( is_404() ) {
230
 
231
  // 404 page
232
- echo '<li>' . ampforwp_translation($redux_builder_amp['amp-translator-error-404-text'], 'Error 404') . '</li>';
233
  }
234
  echo '</ul>';
235
 
23
  if ( !is_front_page() && !ampforwp_polylang_front_page() ) {
24
 
25
  // Build the breadcrums
26
+ echo '<ul id="' . esc_attr($breadcrums_id) . '" class="' . esc_attr($breadcrums_class) . '">';
27
 
28
  // Home page
29
+ echo '<li class="item-home"><a class="bread-link bread-home" href="' . ampforwp_url_controller( get_home_url('', '/'), $home_non_amp ) . '" title="' . esc_attr($home_title) . '">' . esc_html($home_title) . '</a></li>';
30
 
31
  if ( is_archive() && !is_tax() && !is_category() && !is_tag() && !is_author() ) {
32
 
39
  $author_url= get_author_posts_url($userdata->ID);
40
  $author_url = trailingslashit($author_url);
41
  // Display author name
42
+ echo '<li class="item-current item-current-' . esc_attr($userdata->user_nicename) . '"><a class="bread-current bread-current-' . $userdata->user_nicename . '" title="' . esc_attr($userdata->display_name) . '" href="'. ampforwp_url_controller( $author_url, $archive_non_amp ). '">' . 'Author: ' . esc_attr($userdata->display_name) . '</a></li>';
43
 
44
  } else if ( is_archive() && is_tax() && !is_category() && !is_tag() ) {
45
 
52
  $post_type_object = get_post_type_object($post_type);
53
  $post_type_archive = get_post_type_archive_link($post_type);
54
  if ( false != $post_type_archive){
55
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><a class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '" href="' .ampforwp_url_controller( $post_type_archive, $archive_non_amp ) . '" title="' . esc_attr($post_type_object->labels->name) . '">' . esc_attr($post_type_object->labels->name) . '</a></li>';
56
  }
57
  else {
58
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><span class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '">' . esc_attr($post_type_object->labels->name) . '</span></li>';
59
  }
60
  }
61
 
62
  $custom_tax_name = get_queried_object()->name;
63
+ echo '<li class="item-current item-archive"><strong class="bread-current bread-archive">' . esc_attr($custom_tax_name) . '</strong></li>';
64
  } else if ( is_single() ) {
65
 
66
  // If post is a custom post type
72
  $post_type_object = get_post_type_object($post_type);
73
  $post_type_archive = get_post_type_archive_link($post_type);
74
  if ( false != $post_type_archive){
75
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><a class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '" href="' .ampforwp_url_controller( $post_type_archive, $archive_non_amp ) . '" title="' . esc_attr($post_type_object->labels->name) . '">' . esc_html($post_type_object->labels->name) . '</a></li>';
76
  }
77
  else {
78
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><span class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '">' . esc_html($post_type_object->labels->name) . '</span></li>';
79
  }
80
  }
81
  /*Breadcrumb with tags Start*/
88
  $tag_id = $post_obj->term_id;
89
  $tag_name = $post_obj->name;
90
  $tag_link = get_tag_link($tag_id);
91
+ $tags_breadcrumbs .= '<li class="item-tag item-tag-' . esc_attr($tag_id) . ' item-tag-' . esc_attr($tag_name) . '"><a class="bread-tag bread-tag-' . esc_attr($tag_id) . ' bread-tag-' . esc_attr($tag_name) . '" href="' . ampforwp_url_controller( $tag_link, $archive_non_amp ) . '" title="' . esc_attr($tag_name) . '">' . esc_html($tag_name) . '</a></li>';
92
  }
93
  echo $tags_breadcrumbs;
94
  }
113
  foreach($cat_parents as $parents) {
114
  $cat_id = get_cat_ID( $parents);
115
  $cat_link = get_category_link($cat_id);
116
+ $cat_display .= '<li class="item-cat item-cat-' . esc_attr($cat_id) . '"><a class="bread-cat bread-cat-' . esc_attr($cat_id) . ' bread-cat-' . esc_attr($parents). '" href="'. ampforwp_url_controller( $cat_link, $archive_non_amp ).'" title="' . esc_attr($parents) . '">' . esc_html($parents) . '</a></li>';
117
  }
118
  }
119
  }
140
  // Else if post is in a custom taxonomy
141
  } else if(!empty($cat_id)) {
142
 
143
+ echo '<li class="item-cat item-cat-' . esc_attr($cat_id) . ' item-cat-' . esc_attr($cat_nicename) . '"><a class="bread-cat bread-cat-' . esc_attr($cat_id) . ' bread-cat-' . esc_attr($cat_nicename) . '" href="' . ampforwp_url_controller( $cat_link, $archive_non_amp ) . '" title="' . esc_attr($cat_name) . '">' . esc_html($cat_name) . '</a></li>';
144
  }
145
 
146
  } else if ( is_category() ) {
161
  // Parent page loop
162
  if ( !isset( $parents ) ) $parents = null;
163
  foreach ( $anc as $ancestor ) {
164
+ $parents .= '<li class="item-parent item-parent-' . esc_attr($ancestor) . '"><a class="bread-parent bread-parent-' . esc_attr($ancestor) . '" href="' . ampforwp_url_controller( get_permalink( $ancestor ), $archive_non_amp ) . '" title="' . esc_attr(get_the_title($ancestor)) . '">' . esc_html(get_the_title($ancestor)) . '</a></li>';
165
  }
166
 
167
  // Display parent pages
185
  $get_term_name = $terms[0]->name;
186
 
187
  // Display the tag name
188
+ echo '<li class="item-current item-tag-' .esc_attr($get_term_id) . ' item-tag-' . esc_attr($get_term_slug) . '"><strong class="bread-current bread-tag-' . esc_attr($get_term_id) . ' bread-tag-' . esc_attr($get_term_slug) . '">' . esc_html($get_term_name) . '</strong></li>';
189
  } elseif ( is_day() ) {
190
 
191
  // Day archive
192
 
193
  // Year link
194
+ echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . '</a></li>';
195
 
196
  // Month link
197
+ echo '<li class="item-month item-month-' . get_the_time('m') . '"><a class="bread-month bread-month-' . get_the_time('m') . '" href="' . get_month_link( get_the_time('Y'), get_the_time('m') ) . '" title="' . get_the_time('M') . '">' . get_the_time('M') . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </a></li>';
198
 
199
 
200
  // Day display
201
+ echo '<li class="item-current item-' . get_the_time('j') . '"><strong class="bread-current bread-' . get_the_time('j') . '"> ' . get_the_time('jS') . ' ' . get_the_time('M') . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </strong></li>';
202
 
203
  } else if ( is_month() ) {
204
 
205
  // Month Archive
206
 
207
  // Year link
208
+ echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text']), 'Archives') . ' </a></li>';
209
 
210
  // Month display
211
+ echo '<li class="item-month item-month-' . get_the_time('m') . '"><strong class="bread-month bread-month-' . get_the_time('m') . '" title="' . get_the_time('M') . '">' . get_the_time('M') . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </strong></li>';
212
 
213
  } else if ( is_year() ) {
214
 
215
  // Display year archive
216
+ echo '<li class="item-current item-current-' . get_the_time('Y') . '"><strong class="bread-current bread-current-' . get_the_time('Y') . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')). ' </strong></li>';
217
 
218
  } else if ( get_query_var('paged') ) {
219
 
220
  // Paginated archives
221
+ echo '<li class="item-current item-current-' . get_query_var('paged') . '"><strong class="bread-current bread-current-' . get_query_var('paged') . '" title="Page ' . get_query_var('paged') . '">'. esc_html(ampforwp_translation($redux_builder_amp['amp-translator-page-text'], 'Page')) . ' ' . get_query_var('paged') . '</strong></li>';
222
 
223
  } else if ( is_search() ) {
224
 
225
  // Search results page
226
  echo '<li class="item-current item-current-' . get_search_query() . '"><strong class="bread-current bread-current-' . get_search_query() . '" title="Search results for: ' . get_search_query() . '">
227
+ ' . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-breadcrumbs-search-text'], 'Search results for')) . ': ' . get_search_query() . '</strong></li>';
228
 
229
  } elseif ( is_404() ) {
230
 
231
  // 404 page
232
+ echo '<li>' . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-error-404-text'], 'Error 404')) . '</li>';
233
  }
234
  echo '</ul>';
235
 
templates/design-manager/design-1/elements/comments.php CHANGED
@@ -21,7 +21,7 @@
21
  $comment_nums = " ($comment_nums) " ?>
22
 
23
  <div class="amp-wp-content comments_list">
24
- <h3><?php echo ampforwp_translation($redux_builder_amp['amp-translator-view-comments-text'] , 'View Comments' ). $comment_nums?></h3>
25
  <ul> <?php // Display the list of comments
26
  function ampforwp_custom_translated_comment($comment, $args, $depth){
27
  global $redux_builder_amp;
@@ -44,7 +44,7 @@
44
  </div>
45
  <!-- .comment-author -->
46
  <div class="comment-metadata">
47
- <a href="<?php echo htmlspecialchars( untrailingslashit( get_comment_link( $comment->comment_ID ) ) ) ?>">
48
  <?php printf( ampforwp_translation( ('%1$s '. ampforwp_translation($redux_builder_amp['amp-translator-at-text'],'at').' %2$s'), '%1$s at %2$s') , get_comment_date(), get_comment_time())?>
49
  </a>
50
  <?php edit_comment_link( ampforwp_translation( $redux_builder_amp['amp-translator-Edit-text'], 'Edit' ) ) ?>
@@ -63,7 +63,7 @@
63
  'AMP_Style_Sanitizer' => array()
64
  ) ) );
65
  $sanitized_comment_content = $sanitizer->get_amp_content();
66
- echo make_clickable( $sanitized_comment_content ); ?>
67
  </div>
68
  <?php do_action('ampforwp_reply_comment_form', $comment, $args, $depth); ?>
69
  </article> <!-- .comment-body -->
@@ -99,9 +99,9 @@
99
  if ( ! defined( 'AMP_COMMENTS_VERSION' ) ) { ?>
100
  <div class="comment-button-wrapper">
101
  <?php if ( comments_open() ) { ?>
102
- <a href="<?php echo ampforwp_comment_button_url(); ?>" rel="nofollow"><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-leave-a-comment-text'], 'Leave a Comment' ); ?></a> <?php
103
  } else {
104
- echo "<p class='nocomments'>".ampforwp_translation( $redux_builder_amp['amp-translator-comments-closed'], 'Comments are closed' ) ." </p>";
105
  }?>
106
  </div> <?php
107
  } ?>
21
  $comment_nums = " ($comment_nums) " ?>
22
 
23
  <div class="amp-wp-content comments_list">
24
+ <h3><?php echo esc_attr(ampforwp_translation($redux_builder_amp['amp-translator-view-comments-text'] , 'View Comments' )). esc_attr($comment_nums)?></h3>
25
  <ul> <?php // Display the list of comments
26
  function ampforwp_custom_translated_comment($comment, $args, $depth){
27
  global $redux_builder_amp;
44
  </div>
45
  <!-- .comment-author -->
46
  <div class="comment-metadata">
47
+ <a href="<?php echo esc_url(htmlspecialchars( untrailingslashit( get_comment_link( $comment->comment_ID ) ) )) ?>">
48
  <?php printf( ampforwp_translation( ('%1$s '. ampforwp_translation($redux_builder_amp['amp-translator-at-text'],'at').' %2$s'), '%1$s at %2$s') , get_comment_date(), get_comment_time())?>
49
  </a>
50
  <?php edit_comment_link( ampforwp_translation( $redux_builder_amp['amp-translator-Edit-text'], 'Edit' ) ) ?>
63
  'AMP_Style_Sanitizer' => array()
64
  ) ) );
65
  $sanitized_comment_content = $sanitizer->get_amp_content();
66
+ echo make_clickable( $sanitized_comment_content );// amphtml content, no kses ?>
67
  </div>
68
  <?php do_action('ampforwp_reply_comment_form', $comment, $args, $depth); ?>
69
  </article> <!-- .comment-body -->
99
  if ( ! defined( 'AMP_COMMENTS_VERSION' ) ) { ?>
100
  <div class="comment-button-wrapper">
101
  <?php if ( comments_open() ) { ?>
102
+ <a href="<?php echo esc_url(ampforwp_comment_button_url()); ?>" rel="nofollow"><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-leave-a-comment-text'], 'Leave a Comment' ); ?></a> <?php
103
  } else {
104
+ echo "<p class='nocomments'>".esc_attr(ampforwp_translation( $redux_builder_amp['amp-translator-comments-closed'], 'Comments are closed' )) ." </p>";
105
  }?>
106
  </div> <?php
107
  } ?>
templates/design-manager/design-1/elements/content.php CHANGED
@@ -39,7 +39,7 @@
39
 
40
  //Filter to modify the Content
41
  $ampforwp_the_content = apply_filters('ampforwp_modify_the_content', $ampforwp_the_content);
42
- echo $ampforwp_the_content;
43
  do_action('ampforwp_after_post_content',$this) ; ?>
44
  </div>
45
  <!--Post Next-Previous Links-->
39
 
40
  //Filter to modify the Content
41
  $ampforwp_the_content = apply_filters('ampforwp_modify_the_content', $ampforwp_the_content);
42
+ echo $ampforwp_the_content; // amphtml content, no kses
43
  do_action('ampforwp_after_post_content',$this) ; ?>
44
  </div>
45
  <!--Post Next-Previous Links-->
templates/design-manager/design-1/elements/meta-info.php CHANGED
@@ -32,7 +32,7 @@ if ( is_single() || (is_page() && $redux_builder_amp['meta_page']) ) : ?>
32
  if( 2 == $redux_builder_amp['ampforwp-post-date-global'] ){
33
  $date = get_the_modified_date( get_option( 'date_format' )) . ', ' . get_the_modified_time() ;
34
  }
35
- echo apply_filters('ampforwp_modify_post_date', ampforwp_translation($redux_builder_amp['amp-translator-on-text'], 'On') . ' ' . $date );
36
  }?>
37
  </time>
38
  </div>
32
  if( 2 == $redux_builder_amp['ampforwp-post-date-global'] ){
33
  $date = get_the_modified_date( get_option( 'date_format' )) . ', ' . get_the_modified_time() ;
34
  }
35
+ echo esc_attr(apply_filters('ampforwp_modify_post_date', ampforwp_translation($redux_builder_amp['amp-translator-on-text'], 'On') . ' ' . $date ));
36
  }?>
37
  </time>
38
  </div>
templates/design-manager/design-1/elements/meta-taxonomy.php CHANGED
@@ -10,12 +10,12 @@
10
  <?php $ampforwp_categories = get_the_terms( $this->ID, 'category' );
11
  if ( $ampforwp_categories ) : ?>
12
  <div class="amp-wp-meta amp-wp-tax-category">
13
- <span><?php global $redux_builder_amp; printf( ampforwp_translation($redux_builder_amp['amp-translator-categories-text'], 'Categories:' ) .' ' ); ?></span>
14
  <?php foreach ($ampforwp_categories as $cat ) {
15
  if( isset($redux_builder_amp['ampforwp-archive-support']) && $redux_builder_amp['ampforwp-archive-support'] && isset($redux_builder_amp['ampforwp-cats-tags-links-single']) && $redux_builder_amp['ampforwp-cats-tags-links-single']) {
16
- echo ('<span class="amp-cat-'.$cat->term_id.'"><a href="'. ampforwp_url_controller( get_category_link( $cat->term_id ) ) .'" > '. $cat->name .'</a></span>');//#934
17
  } else {
18
- echo '<span>'. $cat->name .'</span>';
19
  }
20
  } ?>
21
  </div>
@@ -29,17 +29,17 @@
29
  if ( $ampforwp_tags && ! is_wp_error( $ampforwp_tags ) ) :?>
30
  <div class="amp-wp-meta amp-wp-tax-tag ampforwp-tax-tag">
31
  <?php if($redux_builder_amp['amp-rtl-select-option']==0) {
32
- printf( ampforwp_translation($redux_builder_amp['amp-translator-tags-text'], 'Tags:' ) .' ' );
33
  }
34
  foreach ($ampforwp_tags as $tag) {
35
  if( isset($redux_builder_amp['ampforwp-archive-support']) && $redux_builder_amp['ampforwp-archive-support'] && isset($redux_builder_amp['ampforwp-cats-tags-links-single']) && $redux_builder_amp['ampforwp-cats-tags-links-single']) {
36
- echo ('<span class="amp-tag-'.$tag->term_id.'"><a href="'. ampforwp_url_controller( get_tag_link( $tag->term_id ) ).'" >'.$tag->name .'</a></span>');//#934
37
  } else {
38
- echo ('<span>'.$tag->name.'</span>');
39
  }
40
  }
41
  if($redux_builder_amp['amp-rtl-select-option']) {
42
- echo '<span class="tt-lb">'.( ampforwp_translation($redux_builder_amp['amp-translator-tags-text'], 'Tags:' ) .' ' ).'</span>';
43
  }?>
44
  </div>
45
  <?php endif; }?>
@@ -61,7 +61,7 @@ if( array_key_exists( 'amp-author-description' , $redux_builder_amp ) && is_sing
61
  $author_avatar_url = get_avatar_url( $post_author->user_email, array( 'size' => 70 ) );
62
  }
63
  if ( $author_avatar_url ) { ?>
64
- <amp-img <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> src="<?php echo $author_avatar_url; ?>" width="70" height="70" layout="fixed"></amp-img>
65
  <?php
66
  }
67
  echo ampforwp_get_author_details( $post_author , 'meta-taxonomy' );
10
  <?php $ampforwp_categories = get_the_terms( $this->ID, 'category' );
11
  if ( $ampforwp_categories ) : ?>
12
  <div class="amp-wp-meta amp-wp-tax-category">
13
+ <span><?php global $redux_builder_amp; printf(esc_attr( ampforwp_translation($redux_builder_amp['amp-translator-categories-text'], 'Categories:' ) .' ' )); ?></span>
14
  <?php foreach ($ampforwp_categories as $cat ) {
15
  if( isset($redux_builder_amp['ampforwp-archive-support']) && $redux_builder_amp['ampforwp-archive-support'] && isset($redux_builder_amp['ampforwp-cats-tags-links-single']) && $redux_builder_amp['ampforwp-cats-tags-links-single']) {
16
+ echo ('<span class="amp-cat-'.esc_attr($cat->term_id).'"><a href="'. ampforwp_url_controller( get_category_link( $cat->term_id ) ) .'" > '. $cat->name .'</a></span>');//#934
17
  } else {
18
+ echo '<span>'. esc_attr($cat->name) .'</span>';
19
  }
20
  } ?>
21
  </div>
29
  if ( $ampforwp_tags && ! is_wp_error( $ampforwp_tags ) ) :?>
30
  <div class="amp-wp-meta amp-wp-tax-tag ampforwp-tax-tag">
31
  <?php if($redux_builder_amp['amp-rtl-select-option']==0) {
32
+ printf( esc_attr(ampforwp_translation($redux_builder_amp['amp-translator-tags-text'], 'Tags:' ) .' ' ));
33
  }
34
  foreach ($ampforwp_tags as $tag) {
35
  if( isset($redux_builder_amp['ampforwp-archive-support']) && $redux_builder_amp['ampforwp-archive-support'] && isset($redux_builder_amp['ampforwp-cats-tags-links-single']) && $redux_builder_amp['ampforwp-cats-tags-links-single']) {
36
+ echo ('<span class="amp-tag-'.esc_attr($tag->term_id).'"><a href="'. ampforwp_url_controller( get_tag_link( $tag->term_id ) ).'" >'.$tag->name .'</a></span>');//#934
37
  } else {
38
+ echo ('<span>'.esc_attr($tag->name).'</span>');
39
  }
40
  }
41
  if($redux_builder_amp['amp-rtl-select-option']) {
42
+ echo '<span class="tt-lb">'.esc_attr( ampforwp_translation($redux_builder_amp['amp-translator-tags-text'], 'Tags:' ) .' ' ).'</span>';
43
  }?>
44
  </div>
45
  <?php endif; }?>
61
  $author_avatar_url = get_avatar_url( $post_author->user_email, array( 'size' => 70 ) );
62
  }
63
  if ( $author_avatar_url ) { ?>
64
+ <amp-img <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> src="<?php echo esc_url($author_avatar_url); ?>" width="70" height="70" layout="fixed"></amp-img>
65
  <?php
66
  }
67
  echo ampforwp_get_author_details( $post_author , 'meta-taxonomy' );
templates/design-manager/design-1/elements/related-posts.php CHANGED
@@ -80,7 +80,7 @@ if( isset($redux_builder_amp['ampforwp-single-related-posts-switch']) && $redux_
80
  <div class="amp-wp-content relatedpost">
81
  <div class="related_posts">
82
  <ol class="clearfix">
83
- <span><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-related-text'], 'Related Post' ); ?></span>
84
  <?php
85
  while( $my_query->have_posts() ) {
86
  $my_query->the_post();
80
  <div class="amp-wp-content relatedpost">
81
  <div class="related_posts">
82
  <ol class="clearfix">
83
+ <span><?php echo esc_attr(ampforwp_translation( $redux_builder_amp['amp-translator-related-text'], 'Related Post' )); ?></span>
84
  <?php
85
  while( $my_query->have_posts() ) {
86
  $my_query->the_post();
templates/design-manager/design-1/elements/simple-comment-button.php CHANGED
@@ -6,6 +6,6 @@ if (!comments_open() || $redux_builder_amp['ampforwp-disqus-comments-support'])
6
  <?php include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
7
  if( ! is_plugin_active( 'amp-comments/amp-comments.php' ) ) { ?>
8
  <div class="comment-button-wrapper ampforwp-comment-button">
9
- <a href="<?php echo ampforwp_comment_button_url(); ?>" rel="nofollow"><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-leave-a-comment-text'], 'Leave a Comment' ); ?></a>
10
  </div>
11
  <?php } ?>
6
  <?php include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
7
  if( ! is_plugin_active( 'amp-comments/amp-comments.php' ) ) { ?>
8
  <div class="comment-button-wrapper ampforwp-comment-button">
9
+ <a href="<?php echo esc_url(ampforwp_comment_button_url()); ?>" rel="nofollow"><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-leave-a-comment-text'], 'Leave a Comment' ); ?></a>
10
  </div>
11
  <?php } ?>
templates/design-manager/design-1/elements/social-icons.php CHANGED
@@ -29,7 +29,7 @@ if ( is_single() || (is_page() && isset($redux_builder_amp['ampforwp-page-social
29
  <?php }
30
  } ?>
31
  <?php if($redux_builder_amp['enable-single-facebook-share'] == true) { ?>
32
- <amp-social-share type="facebook" data-param-app_id="<?php echo $redux_builder_amp['amp-facebook-app-id']; ?>" width="50" height="28"></amp-social-share>
33
  <?php } ?>
34
  <?php if($redux_builder_amp['enable-single-twitter-share'] == true) {
35
  $data_param_data = $redux_builder_amp['enable-single-twitter-share-handle'];?>
29
  <?php }
30
  } ?>
31
  <?php if($redux_builder_amp['enable-single-facebook-share'] == true) { ?>
32
+ <amp-social-share type="facebook" data-param-app_id="<?php echo esc_attr($redux_builder_amp['amp-facebook-app-id']); ?>" width="50" height="28"></amp-social-share>
33
  <?php } ?>
34
  <?php if($redux_builder_amp['enable-single-twitter-share'] == true) {
35
  $data_param_data = $redux_builder_amp['enable-single-twitter-share-handle'];?>
templates/design-manager/design-1/elements/title.php CHANGED
@@ -11,7 +11,7 @@ do_action('ampforwp_above_the_title',$this); ?>
11
  if(has_excerpt()){ ?>
12
  <div class="ampforwp_single_excerpt">
13
  <?php $content = get_the_excerpt();
14
- echo $content; ?>
15
  </div>
16
  <?php }
17
  }
11
  if(has_excerpt()){ ?>
12
  <div class="ampforwp_single_excerpt">
13
  <?php $content = get_the_excerpt();
14
+ echo wp_kses_post($content); ?>
15
  </div>
16
  <?php }
17
  }
templates/design-manager/design-1/footer.php CHANGED
@@ -17,17 +17,17 @@ wp_reset_postdata(); ?>
17
  $menu = apply_filters('ampforwp_menu_content', $menu);
18
  $sanitizer_obj = new AMPFORWP_Content( $menu, array(), apply_filters( 'ampforwp_content_sanitizers', array( 'AMP_Img_Sanitizer' => array(), 'AMP_Style_Sanitizer' => array(), ) ) );
19
  $sanitized_menu = $sanitizer_obj->get_amp_content();
20
- echo $sanitized_menu; ?>
21
  </nav>
22
  </div>
23
  <?php } ?>
24
- <h2><?php echo esc_html( $this->get( 'blog_name' ) ); ?></h2>
25
  <p class="copyright_txt"><?php
26
- $allowed_html = ampforwp_wp_kses_allowed_html();
27
- echo wp_kses( ampforwp_translation($redux_builder_amp['amp-translator-footer-text'], 'Footer' ) , $allowed_html) ;
28
  ?></p><p class="back-to-top">
29
  <?php if($redux_builder_amp['ampforwp-footer-top']=='1') {
30
- ?><a title="back to top" on="tap:backtotop.scrollTo(duration=500)" class="btt" ><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-top-text'], 'Top'); ?></a><?php
31
  }
32
  if($redux_builder_amp['amp-footer-link-non-amp-page']=='1') {
33
  if($redux_builder_amp['ampforwp-footer-top']=='1') {
17
  $menu = apply_filters('ampforwp_menu_content', $menu);
18
  $sanitizer_obj = new AMPFORWP_Content( $menu, array(), apply_filters( 'ampforwp_content_sanitizers', array( 'AMP_Img_Sanitizer' => array(), 'AMP_Style_Sanitizer' => array(), ) ) );
19
  $sanitized_menu = $sanitizer_obj->get_amp_content();
20
+ echo $sanitized_menu;//amphtml content, no kses ?>
21
  </nav>
22
  </div>
23
  <?php } ?>
24
+ <h2><?php echo esc_attr( $this->get( 'blog_name' ) ); ?></h2>
25
  <p class="copyright_txt"><?php
26
+ $allowed_tags = '<p><a><b><strong><i><u><ul><ol><li><h1><h2><h3><h4><h5><h6><table><tr><th><td><em><span>';
27
+ echo strip_tags( ampforwp_translation($redux_builder_amp['amp-translator-footer-text'], 'Footer') ,$allowed_tags );
28
  ?></p><p class="back-to-top">
29
  <?php if($redux_builder_amp['ampforwp-footer-top']=='1') {
30
+ ?><a title="back to top" on="tap:backtotop.scrollTo(duration=500)" class="btt" ><?php echo esc_attr(ampforwp_translation( $redux_builder_amp['amp-translator-top-text'], 'Top')); ?></a><?php
31
  }
32
  if($redux_builder_amp['amp-footer-link-non-amp-page']=='1') {
33
  if($redux_builder_amp['ampforwp-footer-top']=='1') {
templates/design-manager/design-1/frontpage.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  $template = new AMP_Post_Template( $post_id );?>
6
  <!doctype html>
7
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $template->get( 'html_tag_attributes' ) ); ?>>
8
  <head>
9
  <meta charset="utf-8">
10
  <?php do_action( 'amp_post_template_head', $template ); ?>
4
 
5
  $template = new AMP_Post_Template( $post_id );?>
6
  <!doctype html>
7
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $template->get( 'html_tag_attributes' ) )); ?>>
8
  <head>
9
  <meta charset="utf-8">
10
  <?php do_action( 'amp_post_template_head', $template ); ?>
templates/design-manager/design-1/header-bar.php CHANGED
@@ -48,7 +48,7 @@
48
  $menu_html_content = apply_filters('ampforwp_menu_content', $menu_html_content);
49
  $sanitizer_obj = new AMPFORWP_Content( $menu_html_content, array(), apply_filters( 'ampforwp_content_sanitizers', array( 'AMP_Img_Sanitizer' => array(), 'AMP_Style_Sanitizer' => array(), ) ) );
50
  $sanitized_menu = $sanitizer_obj->get_amp_content();
51
- echo $sanitized_menu;
52
  ?>
53
  </nav>
54
  <?php do_action('ampforwp_after_amp_menu'); ?>
48
  $menu_html_content = apply_filters('ampforwp_menu_content', $menu_html_content);
49
  $sanitizer_obj = new AMPFORWP_Content( $menu_html_content, array(), apply_filters( 'ampforwp_content_sanitizers', array( 'AMP_Img_Sanitizer' => array(), 'AMP_Style_Sanitizer' => array(), ) ) );
50
  $sanitized_menu = $sanitizer_obj->get_amp_content();
51
+ echo $sanitized_menu; // amphtml content, no kses
52
  ?>
53
  </nav>
54
  <?php do_action('ampforwp_after_amp_menu'); ?>
templates/design-manager/design-1/index.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php global $redux_builder_amp; ?>
2
  <!doctype html>
3
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) ); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
@@ -47,7 +47,7 @@
47
  $q = new WP_Query( $filtered_args );
48
  $blog_title = ampforwp_get_blog_details('title');
49
  if( ampforwp_is_blog() && $blog_title){ ?>
50
- <h1 class="page-title"><?php echo $blog_title ?></h1>
51
  <?php }
52
 
53
 
@@ -64,13 +64,13 @@
64
  <time> <?php
65
  $post_date = human_time_diff( get_the_time('U', get_the_ID() ), current_time('timestamp') ) .' '. ampforwp_translation( $redux_builder_amp['amp-translator-ago-date-text'],'ago' );
66
  $post_date = apply_filters('ampforwp_modify_post_date',$post_date);
67
- echo $post_date ;?>
68
  </time> <?php
69
  }
70
  if( isset($redux_builder_amp['ampforwp-design1-cats-home']) && $redux_builder_amp['ampforwp-design1-cats-home'] ) {
71
  foreach((get_the_category()) as $category) { ?>
72
  <ul class="amp-wp-tags">
73
- <li class="amp-cat-<?php echo $category->term_id;?>"> <?php echo ' ' . $category->cat_name ?> </li> </ul>
74
  <?php }
75
  } ?>
76
  </div>
1
  <?php global $redux_builder_amp; ?>
2
  <!doctype html>
3
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) )); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
47
  $q = new WP_Query( $filtered_args );
48
  $blog_title = ampforwp_get_blog_details('title');
49
  if( ampforwp_is_blog() && $blog_title){ ?>
50
+ <h1 class="page-title"><?php echo esc_attr($blog_title) ?></h1>
51
  <?php }
52
 
53
 
64
  <time> <?php
65
  $post_date = human_time_diff( get_the_time('U', get_the_ID() ), current_time('timestamp') ) .' '. ampforwp_translation( $redux_builder_amp['amp-translator-ago-date-text'],'ago' );
66
  $post_date = apply_filters('ampforwp_modify_post_date',$post_date);
67
+ echo esc_attr($post_date) ;?>
68
  </time> <?php
69
  }
70
  if( isset($redux_builder_amp['ampforwp-design1-cats-home']) && $redux_builder_amp['ampforwp-design1-cats-home'] ) {
71
  foreach((get_the_category()) as $category) { ?>
72
  <ul class="amp-wp-tags">
73
+ <li class="amp-cat-<?php echo esc_attr($category->term_id);?>"> <?php echo ' ' . esc_attr($category->cat_name) ?> </li> </ul>
74
  <?php }
75
  } ?>
76
  </div>
templates/design-manager/design-1/search.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php global $redux_builder_amp; ?>
2
  <!doctype html>
3
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) ); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <meta name="robots" content="noindex,nofollow"/>
@@ -55,13 +55,13 @@
55
  relevanssi_do_query( $q );
56
  };?>
57
 
58
- <h1 class="amp-wp-content page-title"><?php echo ampforwp_translation($redux_builder_amp['amp-translator-search-text'], 'You searched for:' ) . ' ' . get_search_query();?></h1>
59
 
60
  <?php if ( $q->have_posts() ) : while ( $q->have_posts() ) : $q->the_post();?>
61
 
62
  <div class="amp-wp-content amp-wp-article-header amp-loop-list">
63
 
64
- <h1 class="amp-wp-title"><a href="<?php echo ampforwp_url_controller( get_permalink() );?>"><?php the_title() ?></a></h1>
65
 
66
  <div class="amp-wp-content-loop">
67
 
@@ -69,7 +69,7 @@
69
  <time> <?php
70
  $post_date = human_time_diff( get_the_time('U', get_the_ID() ), current_time('timestamp') ) .' '. ampforwp_translation( $redux_builder_amp['amp-translator-ago-date-text'],'ago' );
71
  $post_date = apply_filters('ampforwp_modify_post_date',$post_date);
72
- echo $post_date ; ?>
73
  </time>
74
  </div>
75
 
@@ -97,7 +97,7 @@
97
  </div>
98
  <?php else: ?>
99
  <div class="amp-wp-content amp-wp-article-header amp-loop-list">
100
- <?php echo ampforwp_translation($redux_builder_amp['amp-translator-search-no-found'], 'It seems we can\'t find what you\'re looking for. '); ?>
101
  <div class="cb"></div>
102
  </div>
103
  <?php endif; ?> <?php wp_reset_postdata(); ?>
1
  <?php global $redux_builder_amp; ?>
2
  <!doctype html>
3
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) )); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <meta name="robots" content="noindex,nofollow"/>
55
  relevanssi_do_query( $q );
56
  };?>
57
 
58
+ <h1 class="amp-wp-content page-title"><?php echo esc_attr(ampforwp_translation($redux_builder_amp['amp-translator-search-text'], 'You searched for:' )) . ' ' . get_search_query();?></h1>
59
 
60
  <?php if ( $q->have_posts() ) : while ( $q->have_posts() ) : $q->the_post();?>
61
 
62
  <div class="amp-wp-content amp-wp-article-header amp-loop-list">
63
 
64
+ <h1 class="amp-wp-title"><a href="<?php echo ampforwp_url_controller( get_permalink());?>"><?php the_title() ?></a></h1>
65
 
66
  <div class="amp-wp-content-loop">
67
 
69
  <time> <?php
70
  $post_date = human_time_diff( get_the_time('U', get_the_ID() ), current_time('timestamp') ) .' '. ampforwp_translation( $redux_builder_amp['amp-translator-ago-date-text'],'ago' );
71
  $post_date = apply_filters('ampforwp_modify_post_date',$post_date);
72
+ echo esc_attr($post_date) ; ?>
73
  </time>
74
  </div>
75
 
97
  </div>
98
  <?php else: ?>
99
  <div class="amp-wp-content amp-wp-article-header amp-loop-list">
100
+ <?php echo esc_attr(ampforwp_translation($redux_builder_amp['amp-translator-search-no-found'], 'It seems we can\'t find what you\'re looking for. ')); ?>
101
  <div class="cb"></div>
102
  </div>
103
  <?php endif; ?> <?php wp_reset_postdata(); ?>
templates/design-manager/design-1/single.php CHANGED
@@ -1,5 +1,5 @@
1
  <!doctype html>
2
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) ); ?>>
3
  <head>
4
  <meta charset="utf-8">
5
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
1
  <!doctype html>
2
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) )); ?>>
3
  <head>
4
  <meta charset="utf-8">
5
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
templates/design-manager/design-1/style.php CHANGED
@@ -24,25 +24,25 @@
24
  font-family: 'Merriweather';
25
  font-style: normal;
26
  font-weight: 400;
27
- src: local('Merriweather'), local('Merriweather-Regular'), url('<?php echo plugin_dir_url(__FILE__) ?>fonts/Merriweather-Regular.ttf');
28
  }
29
  @font-face {
30
  font-family: 'Merriweather';
31
  font-style: normal;
32
  font-weight: 700;
33
- src: local('Merriweather Bold'), local('Merriweather-Bold'), url('<?php echo plugin_dir_url(__FILE__) ?>fonts/Merriweather-Bold.ttf');
34
  }
35
  @font-face {
36
  font-family: 'Merriweather';
37
  font-style: italic;
38
  font-weight: 400;
39
- src: local('Merriweather Italic'), local('Merriweather-Italic'), url('<?php echo plugin_dir_url(__FILE__) ?>fonts/Merriweather-Italic.ttf');
40
  }
41
  @font-face {
42
  font-family: 'Merriweather';
43
  font-style: italic;
44
  font-weight: 700;
45
- src: local('Merriweather Bold Italic'), local('Merriweather-BoldItalic'), url('<?php echo plugin_dir_url(__FILE__) ?>fonts/Merriweather-BoldItalic.ttf');
46
  }
47
  .clearfix, .cb{clear:both}
48
  .alignright{ float: right; }
@@ -52,7 +52,7 @@
52
  .amp-wp-unknown-size img{ object-fit: contain; }
53
  amp-iframe{ max-width: 100%; margin-bottom : 20px; }
54
  amp-wistia-player {margin:5px 0px;}
55
- .amp-wp-content,.amp-wp-title-bar div {<?php if ( $content_max_width > 0 ) : ?> margin: 0 auto;max-width: <?php echo sprintf( '%dpx', $content_max_width ); ?>; <?php endif; ?> }
56
  html{background: <?php echo sanitize_hex_color( $header_background_color ); ?>;} body{background: <?php echo sanitize_hex_color( $theme_color ); ?>;color: <?php echo sanitize_hex_color( $text_color ); ?>;font-family: 'Merriweather', 'Times New Roman', Times, Serif;font-weight: 300;line-height: 1.75em;}
57
  p,ol,ul,figure {margin: 0 0 1em;padding: 0;} a,a:visited {color:<?php echo $redux_builder_amp['amp-opt-color-rgba-link-design1']['color']; ?>;}a:hover,a:active,a:focus {color: <?php echo sanitize_hex_color( $text_color ); ?>;} .wp-caption amp-img{max-width: 100%}
58
  blockquote {color: <?php echo sanitize_hex_color( $text_color ); ?>;background: rgba(127,127,127,.125);border-left: 2px solid <?php echo sanitize_hex_color( $link_color ); ?>;margin: 8px 0 24px 0;padding: 16px;} blockquote p:last-child {margin-bottom: 0;}
@@ -187,7 +187,7 @@ amp-carousel{direction: ltr;} .tt-lb{float:right;margin-left:5px;}
187
  <?php } ?>
188
  <?php if ($redux_builder_amp['ampforwp-callnow-button']) { ?>
189
  .callnow{ position: relative; top: -27px; right: 100px; }
190
- .callnow a:before { content: ""; position: absolute; right: 23px; width: 5px; height: 11px; border-width: 6px 0 6px 3px; border-style: solid; border-color:<?php echo $redux_builder_amp['amp-opt-color-rgba-colorscheme-call']['color']; ?>; background: transparent; transform: rotate(-30deg); box-sizing: initial; border-top-left-radius: 3px 5px; border-bottom-left-radius: 3px 5px; }
191
  <?php } ?>
192
  <?php
193
  if ( class_exists('TablePress') ) { ?>
24
  font-family: 'Merriweather';
25
  font-style: normal;
26
  font-weight: 400;
27
+ src: local('Merriweather'), local('Merriweather-Regular'), url('<?php echo esc_url(plugin_dir_url(__FILE__)) ?>fonts/Merriweather-Regular.ttf');
28
  }
29
  @font-face {
30
  font-family: 'Merriweather';
31
  font-style: normal;
32
  font-weight: 700;
33
+ src: local('Merriweather Bold'), local('Merriweather-Bold'), url('<?php echo esc_url(plugin_dir_url(__FILE__)) ?>fonts/Merriweather-Bold.ttf');
34
  }
35
  @font-face {
36
  font-family: 'Merriweather';
37
  font-style: italic;
38
  font-weight: 400;
39
+ src: local('Merriweather Italic'), local('Merriweather-Italic'), url('<?php echo esc_url(plugin_dir_url(__FILE__)) ?>fonts/Merriweather-Italic.ttf');
40
  }
41
  @font-face {
42
  font-family: 'Merriweather';
43
  font-style: italic;
44
  font-weight: 700;
45
+ src: local('Merriweather Bold Italic'), local('Merriweather-BoldItalic'), url('<?php echo esc_url(plugin_dir_url(__FILE__)) ?>fonts/Merriweather-BoldItalic.ttf');
46
  }
47
  .clearfix, .cb{clear:both}
48
  .alignright{ float: right; }
52
  .amp-wp-unknown-size img{ object-fit: contain; }
53
  amp-iframe{ max-width: 100%; margin-bottom : 20px; }
54
  amp-wistia-player {margin:5px 0px;}
55
+ .amp-wp-content,.amp-wp-title-bar div {<?php if ( $content_max_width > 0 ) : ?> margin: 0 auto;max-width: <?php echo esc_attr(sprintf( '%dpx', $content_max_width )); ?>; <?php endif; ?> }
56
  html{background: <?php echo sanitize_hex_color( $header_background_color ); ?>;} body{background: <?php echo sanitize_hex_color( $theme_color ); ?>;color: <?php echo sanitize_hex_color( $text_color ); ?>;font-family: 'Merriweather', 'Times New Roman', Times, Serif;font-weight: 300;line-height: 1.75em;}
57
  p,ol,ul,figure {margin: 0 0 1em;padding: 0;} a,a:visited {color:<?php echo $redux_builder_amp['amp-opt-color-rgba-link-design1']['color']; ?>;}a:hover,a:active,a:focus {color: <?php echo sanitize_hex_color( $text_color ); ?>;} .wp-caption amp-img{max-width: 100%}
58
  blockquote {color: <?php echo sanitize_hex_color( $text_color ); ?>;background: rgba(127,127,127,.125);border-left: 2px solid <?php echo sanitize_hex_color( $link_color ); ?>;margin: 8px 0 24px 0;padding: 16px;} blockquote p:last-child {margin-bottom: 0;}
187
  <?php } ?>
188
  <?php if ($redux_builder_amp['ampforwp-callnow-button']) { ?>
189
  .callnow{ position: relative; top: -27px; right: 100px; }
190
+ .callnow a:before { content: ""; position: absolute; right: 23px; width: 5px; height: 11px; border-width: 6px 0 6px 3px; border-style: solid; border-color:<?php echo ampforwp_sanitize_color($redux_builder_amp['amp-opt-color-rgba-colorscheme-call']['color']); ?>; background: transparent; transform: rotate(-30deg); box-sizing: initial; border-top-left-radius: 3px 5px; border-bottom-left-radius: 3px 5px; }
191
  <?php } ?>
192
  <?php
193
  if ( class_exists('TablePress') ) { ?>
templates/design-manager/design-2/404.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php global $redux_builder_amp;?>
2
  <!doctype html>
3
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) ); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
@@ -20,7 +20,7 @@
20
  <h1 class="amp-wp-title">
21
  <?php do_action('ampforwp_post_before_design_elements') ?>
22
  <?php global $redux_builder_amp; echo
23
- ampforwp_translation( $redux_builder_amp['amp-translator-fourohfour'], 'Oops! That page can’t be found.'); ?>
24
  </h1>
25
  <?php do_action('ampforwp_post_after_design_elements') ?>
26
  </article>
1
  <?php global $redux_builder_amp;?>
2
  <!doctype html>
3
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) )); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
20
  <h1 class="amp-wp-title">
21
  <?php do_action('ampforwp_post_before_design_elements') ?>
22
  <?php global $redux_builder_amp; echo
23
+ esc_attr(ampforwp_translation( $redux_builder_amp['amp-translator-fourohfour'], 'Oops! That page can’t be found.')); ?>
24
  </h1>
25
  <?php do_action('ampforwp_post_after_design_elements') ?>
26
  </article>
templates/design-manager/design-2/archive.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php global $redux_builder_amp; global $wp; ?>
2
  <!doctype html>
3
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) ); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
@@ -26,7 +26,7 @@
26
  $amp_component_scripts = $sanitizer->amp_scripts;
27
  if ( $sanitizer && $amp_component_scripts) {
28
  foreach ($amp_component_scripts as $ampforwp_service => $ampforwp_js_file) { ?>
29
- <script custom-element="<?php echo $ampforwp_service; ?>" src="<?php echo $ampforwp_js_file; ?>" async></script> <?php
30
  }
31
  }?>
32
  <style amp-custom>
@@ -71,7 +71,7 @@
71
  }
72
  if($paged <= '1') {?>
73
  <div class="amp-wp-content taxonomy-description">
74
- <?php echo $arch_desc ; ?>
75
  </div> <?php
76
  }
77
  }
@@ -86,7 +86,7 @@
86
  if(!empty($cat_childs)){
87
  echo "<div class='amp-sub-archives'><ul>";
88
  foreach ($cat_childs as $cat_child ) {
89
- echo '<li><a href="' . get_term_link( $cat_child ) . '">' . $cat_child->name . '</a></li>';
90
  }
91
  echo "</ul></div>";
92
  }
1
  <?php global $redux_builder_amp; global $wp; ?>
2
  <!doctype html>
3
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) )); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
26
  $amp_component_scripts = $sanitizer->amp_scripts;
27
  if ( $sanitizer && $amp_component_scripts) {
28
  foreach ($amp_component_scripts as $ampforwp_service => $ampforwp_js_file) { ?>
29
+ <script custom-element="<?php echo $ampforwp_service; ?>" src="<?php echo esc_url($ampforwp_js_file); ?>" async></script> <?php
30
  }
31
  }?>
32
  <style amp-custom>
71
  }
72
  if($paged <= '1') {?>
73
  <div class="amp-wp-content taxonomy-description">
74
+ <?php echo $arch_desc;// amphtml content, No kses ?>
75
  </div> <?php
76
  }
77
  }
86
  if(!empty($cat_childs)){
87
  echo "<div class='amp-sub-archives'><ul>";
88
  foreach ($cat_childs as $cat_child ) {
89
+ echo '<li><a href="' . esc_url(get_term_link( $cat_child )) . '">' . esc_attr($cat_child->name) . '</a></li>';
90
  }
91
  echo "</ul></div>";
92
  }
templates/design-manager/design-2/elements/bread-crumbs.php CHANGED
@@ -23,10 +23,10 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
23
  if ( !is_front_page() && !ampforwp_polylang_front_page() ) {
24
 
25
  // Build the breadcrums
26
- echo '<ul id="' . $breadcrums_id . '" class="' . $breadcrums_class . '">';
27
 
28
  // Home page
29
- echo '<li class="item-home"><a class="bread-link bread-home" href="' . esc_url(ampforwp_url_controller( get_home_url('', '/'), $home_non_amp )) . '" title="' . $home_title . '">' . $home_title . '</a></li>';
30
 
31
  if ( is_archive() && !is_tax() && !is_category() && !is_tag() && !is_author() ) {
32
 
@@ -39,7 +39,7 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
39
  $author_url= get_author_posts_url($userdata->ID);
40
  $author_url = trailingslashit($author_url);
41
  // Display author name
42
- echo '<li class="item-current item-current-' . $userdata->user_nicename . '"><a class="bread-current bread-current-' . $userdata->user_nicename . '" title="' . $userdata->display_name . '" href="'. esc_url(ampforwp_url_controller( $author_url, $archive_non_amp )). '">' . 'Author: ' . $userdata->display_name . '</a></li>';
43
 
44
  } else if ( is_archive() && is_tax() && !is_category() && !is_tag() ) {
45
 
@@ -52,15 +52,15 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
52
  $post_type_object = get_post_type_object($post_type);
53
  $post_type_archive = get_post_type_archive_link($post_type);
54
  if ( false != $post_type_archive){
55
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><a class="bread-cat bread-custom-post-type-' . $post_type . '" href="' .esc_url(ampforwp_url_controller( $post_type_archive, $archive_non_amp )) . '" title="' . $post_type_object->labels->name . '">' . $post_type_object->labels->name . '</a></li>';
56
  }
57
  else {
58
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><span class="bread-cat bread-custom-post-type-' . $post_type . '">' . $post_type_object->labels->name . '</span></li>';
59
  }
60
  }
61
 
62
  $custom_tax_name = get_queried_object()->name;
63
- echo '<li class="item-current item-archive"><strong class="bread-current bread-archive">' . $custom_tax_name . '</strong></li>';
64
  } else if ( is_single() ) {
65
 
66
  // If post is a custom post type
@@ -72,10 +72,10 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
72
  $post_type_object = get_post_type_object($post_type);
73
  $post_type_archive = get_post_type_archive_link($post_type);
74
  if ( false != $post_type_archive){
75
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><a class="bread-cat bread-custom-post-type-' . $post_type . '" href="' .esc_url(ampforwp_url_controller( $post_type_archive, $archive_non_amp )) . '" title="' . $post_type_object->labels->name . '">' . $post_type_object->labels->name . '</a></li>';
76
  }
77
  else {
78
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><span class="bread-cat bread-custom-post-type-' . $post_type . '">' . $post_type_object->labels->name . '</span></li>';
79
  }
80
  }
81
  /*Breadcrumb with tags Start*/
@@ -88,16 +88,14 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
88
  $tag_id = $post_obj->term_id;
89
  $tag_name = $post_obj->name;
90
  $tag_link = get_tag_link($tag_id);
91
- $tags_breadcrumbs .= '<li class="item-tag item-tag-' . $tag_id . ' item-tag-' . $tag_name . '"><a class="bread-tag bread-tag-' . $tag_id . ' bread-tag-' . $tag_name . '" href="' . esc_url(ampforwp_url_controller( $tag_link, $archive_non_amp )) . '" title="' . $tag_name . '">' . $tag_name . '</a></li>';
92
  }
93
  echo $tags_breadcrumbs;
94
  }
95
  }
96
-
97
  if($redux_builder_amp['ampforwp-bread-crumb-type'] == 'category'){
98
- // Get post category info
99
- $category = get_the_category();
100
-
101
  if(!empty($category)) {
102
 
103
  // Get last category post is in
@@ -113,11 +111,12 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
113
  foreach($cat_parents as $parents) {
114
  $cat_id = get_cat_ID( $parents);
115
  $cat_link = get_category_link($cat_id);
116
- $cat_display .= '<li class="item-cat item-cat-' . $cat_id . '"><a class="bread-cat bread-cat-' . $cat_id . ' bread-cat-' . $parents. '" href="'. esc_url(ampforwp_url_controller( $cat_link, $archive_non_amp )).'" title="' . $parents . '">' . $parents . '</a></li>';
117
  }
118
  }
119
  }
120
  /*Breadcrumb with tags End*/
 
121
  // If it's a custom post type within a custom taxonomy
122
  $taxonomy_exists = taxonomy_exists($custom_taxonomy);
123
  if(empty($last_category) && !empty($custom_taxonomy) && $taxonomy_exists) {
@@ -139,7 +138,7 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
139
  // Else if post is in a custom taxonomy
140
  } else if(!empty($cat_id)) {
141
 
142
- echo '<li class="item-cat item-cat-' . $cat_id . ' item-cat-' . $cat_nicename . '"><a class="bread-cat bread-cat-' . $cat_id . ' bread-cat-' . $cat_nicename . '" href="' . esc_url(ampforwp_url_controller( $cat_link, $archive_non_amp )) . '" title="' . $cat_name . '">' . $cat_name . '</a></li>';
143
  }
144
 
145
  } else if ( is_category() ) {
@@ -160,7 +159,7 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
160
  // Parent page loop
161
  if ( !isset( $parents ) ) $parents = null;
162
  foreach ( $anc as $ancestor ) {
163
- $parents .= '<li class="item-parent item-parent-' . $ancestor . '"><a class="bread-parent bread-parent-' . $ancestor . '" href="' . esc_url(ampforwp_url_controller( get_permalink( $ancestor ), $archive_non_amp )) . '" title="' . get_the_title($ancestor) . '">' . get_the_title($ancestor) . '</a></li>';
164
  }
165
 
166
  // Display parent pages
@@ -184,51 +183,51 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
184
  $get_term_name = $terms[0]->name;
185
 
186
  // Display the tag name
187
- echo '<li class="item-current item-tag-' . $get_term_id . ' item-tag-' . $get_term_slug . '"><strong class="bread-current bread-tag-' . $get_term_id . ' bread-tag-' . $get_term_slug . '">' . $get_term_name . '</strong></li>';
188
  } elseif ( is_day() ) {
189
 
190
  // Day archive
191
 
192
  // Year link
193
- echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . '</a></li>';
194
 
195
  // Month link
196
- echo '<li class="item-month item-month-' . get_the_time('m') . '"><a class="bread-month bread-month-' . get_the_time('m') . '" href="' . get_month_link( get_the_time('Y'), get_the_time('m') ) . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </a></li>';
197
 
198
 
199
  // Day display
200
- echo '<li class="item-current item-' . get_the_time('j') . '"><strong class="bread-current bread-' . get_the_time('j') . '"> ' . get_the_time('jS') . ' ' . get_the_time('M') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </strong></li>';
201
 
202
  } else if ( is_month() ) {
203
 
204
  // Month Archive
205
 
206
  // Year link
207
- echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </a></li>';
208
 
209
  // Month display
210
- echo '<li class="item-month item-month-' . get_the_time('m') . '"><strong class="bread-month bread-month-' . get_the_time('m') . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </strong></li>';
211
 
212
  } else if ( is_year() ) {
213
 
214
  // Display year archive
215
- echo '<li class="item-current item-current-' . get_the_time('Y') . '"><strong class="bread-current bread-current-' . get_the_time('Y') . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives'). ' </strong></li>';
216
 
217
  } else if ( get_query_var('paged') ) {
218
 
219
  // Paginated archives
220
- echo '<li class="item-current item-current-' . get_query_var('paged') . '"><strong class="bread-current bread-current-' . get_query_var('paged') . '" title="Page ' . get_query_var('paged') . '">'. ampforwp_translation($redux_builder_amp['amp-translator-page-text'], 'Page') . ' ' . get_query_var('paged') . '</strong></li>';
221
 
222
  } else if ( is_search() ) {
223
 
224
  // Search results page
225
- echo '<li class="item-current item-current-' . get_search_query() . '"><strong class="bread-current bread-current-' . get_search_query() . '" title="Search results for: ' . get_search_query() . '">
226
- ' . ampforwp_translation($redux_builder_amp['amp-translator-breadcrumbs-search-text'], 'Search results for') . ': ' . get_search_query() . '</strong></li>';
227
 
228
  } elseif ( is_404() ) {
229
 
230
  // 404 page
231
- echo '<li>' . ampforwp_translation($redux_builder_amp['amp-translator-error-404-text'], 'Error 404') . '</li>';
232
  }
233
  echo '</ul>';
234
 
23
  if ( !is_front_page() && !ampforwp_polylang_front_page() ) {
24
 
25
  // Build the breadcrums
26
+ echo '<ul id="' . esc_attr($breadcrums_id) . '" class="' . esc_attr($breadcrums_class) . '">';
27
 
28
  // Home page
29
+ echo '<li class="item-home"><a class="bread-link bread-home" href="' . ampforwp_url_controller( get_home_url('', '/'), $home_non_amp ) . '" title="' . esc_attr($home_title) . '">' . esc_html($home_title) . '</a></li>';
30
 
31
  if ( is_archive() && !is_tax() && !is_category() && !is_tag() && !is_author() ) {
32
 
39
  $author_url= get_author_posts_url($userdata->ID);
40
  $author_url = trailingslashit($author_url);
41
  // Display author name
42
+ echo '<li class="item-current item-current-' . esc_attr($userdata->user_nicename) . '"><a class="bread-current bread-current-' . esc_attr($userdata->user_nicename) . '" title="' . esc_attr($userdata->display_name) . '" href="'. ampforwp_url_controller( $author_url, $archive_non_amp ). '">' . 'Author: ' . esc_attr($userdata->display_name) . '</a></li>';
43
 
44
  } else if ( is_archive() && is_tax() && !is_category() && !is_tag() ) {
45
 
52
  $post_type_object = get_post_type_object($post_type);
53
  $post_type_archive = get_post_type_archive_link($post_type);
54
  if ( false != $post_type_archive){
55
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><a class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '" href="' .ampforwp_url_controller( $post_type_archive, $archive_non_amp ) . '" title="' . esc_attr($post_type_object->labels->name) . '">' . esc_attr($post_type_object->labels->name) . '</a></li>';
56
  }
57
  else {
58
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type ). '"><span class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '">' . esc_attr($post_type_object->labels->name) . '</span></li>';
59
  }
60
  }
61
 
62
  $custom_tax_name = get_queried_object()->name;
63
+ echo '<li class="item-current item-archive"><strong class="bread-current bread-archive">' . esc_attr($custom_tax_name) . '</strong></li>';
64
  } else if ( is_single() ) {
65
 
66
  // If post is a custom post type
72
  $post_type_object = get_post_type_object($post_type);
73
  $post_type_archive = get_post_type_archive_link($post_type);
74
  if ( false != $post_type_archive){
75
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><a class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '" href="' .ampforwp_url_controller( $post_type_archive, $archive_non_amp ) . '" title="' . esc_attr($post_type_object->labels->name) . '">' . esc_html($post_type_object->labels->name) . '</a></li>';
76
  }
77
  else {
78
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><span class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '">' . esc_html($post_type_object->labels->name) . '</span></li>';
79
  }
80
  }
81
  /*Breadcrumb with tags Start*/
88
  $tag_id = $post_obj->term_id;
89
  $tag_name = $post_obj->name;
90
  $tag_link = get_tag_link($tag_id);
91
+ $tags_breadcrumbs .= '<li class="item-tag item-tag-' . esc_attr($tag_id) . ' item-tag-' . esc_attr($tag_name) . '"><a class="bread-tag bread-tag-' . esc_attr($tag_id) . ' bread-tag-' . esc_attr($tag_name) . '" href="' . ampforwp_url_controller( $tag_link, $archive_non_amp ) . '" title="' . esc_attr($tag_name) . '">' . esc_html($tag_name) . '</a></li>';
92
  }
93
  echo $tags_breadcrumbs;
94
  }
95
  }
 
96
  if($redux_builder_amp['ampforwp-bread-crumb-type'] == 'category'){
97
+ // Get post category info
98
+ $category = get_the_category();
 
99
  if(!empty($category)) {
100
 
101
  // Get last category post is in
111
  foreach($cat_parents as $parents) {
112
  $cat_id = get_cat_ID( $parents);
113
  $cat_link = get_category_link($cat_id);
114
+ $cat_display .= '<li class="item-cat item-cat-' . esc_attr($cat_id) . '"><a class="bread-cat bread-cat-' . esc_attr($cat_id) . ' bread-cat-' . esc_attr($parents). '" href="'. ampforwp_url_controller( $cat_link, $archive_non_amp ).'" title="' . esc_attr($parents) . '">' . esc_html($parents) . '</a></li>';
115
  }
116
  }
117
  }
118
  /*Breadcrumb with tags End*/
119
+
120
  // If it's a custom post type within a custom taxonomy
121
  $taxonomy_exists = taxonomy_exists($custom_taxonomy);
122
  if(empty($last_category) && !empty($custom_taxonomy) && $taxonomy_exists) {
138
  // Else if post is in a custom taxonomy
139
  } else if(!empty($cat_id)) {
140
 
141
+ echo '<li class="item-cat item-cat-' . esc_attr($cat_id) . ' item-cat-' . esc_attr($cat_nicename) . '"><a class="bread-cat bread-cat-' . esc_attr($cat_id) . ' bread-cat-' . esc_attr($cat_nicename) . '" href="' . ampforwp_url_controller( $cat_link, $archive_non_amp ) . '" title="' . esc_attr($cat_name) . '">' . esc_html($cat_name) . '</a></li>';
142
  }
143
 
144
  } else if ( is_category() ) {
159
  // Parent page loop
160
  if ( !isset( $parents ) ) $parents = null;
161
  foreach ( $anc as $ancestor ) {
162
+ $parents .= '<li class="item-parent item-parent-' . esc_attr($ancestor) . '"><a class="bread-parent bread-parent-' . esc_attr($ancestor) . '" href="' . ampforwp_url_controller( get_permalink( $ancestor ), $archive_non_amp ) . '" title="' . esc_attr(get_the_title($ancestor)) . '">' .esc_html(get_the_title($ancestor)) . '</a></li>';
163
  }
164
 
165
  // Display parent pages
183
  $get_term_name = $terms[0]->name;
184
 
185
  // Display the tag name
186
+ echo '<li class="item-current item-tag-' . esc_attr($get_term_id) . ' item-tag-' . esc_attr($get_term_slug) . '"><strong class="bread-current bread-tag-' . esc_attr($get_term_id) . ' bread-tag-' . esc_attr($get_term_slug) . '">' . esc_html($get_term_name) . '</strong></li>';
187
  } elseif ( is_day() ) {
188
 
189
  // Day archive
190
 
191
  // Year link
192
+ echo '<li class="item-year item-year-' . esc_attr(get_the_time('Y')) . '"><a class="bread-year bread-year-' . esc_attr(get_the_time('Y')) . '" href="' . esc_url(get_year_link( get_the_time('Y') )) . '" title="' . esc_attr(get_the_time('Y')) . '">' . esc_attr(get_the_time('Y')) . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . '</a></li>';
193
 
194
  // Month link
195
+ echo '<li class="item-month item-month-' . esc_attr(get_the_time('m')) . '"><a class="bread-month bread-month-' . esc_attr(get_the_time('m')) . '" href="' . esc_attr(get_month_link( get_the_time('Y'), get_the_time('m') )) . '" title="' . esc_attr(get_the_time('M')) . '">' . esc_attr(get_the_time('M')) . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </a></li>';
196
 
197
 
198
  // Day display
199
+ echo '<li class="item-current item-' . esc_attr(get_the_time('j')) . '"><strong class="bread-current bread-' . esc_attr(get_the_time('j')) . '"> ' . esc_attr(get_the_time('jS')) . ' ' . esc_attr(get_the_time('M')) . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </strong></li>';
200
 
201
  } else if ( is_month() ) {
202
 
203
  // Month Archive
204
 
205
  // Year link
206
+ echo '<li class="item-year item-year-' . esc_attr(get_the_time('Y')) . '"><a class="bread-year bread-year-' . esc_attr(get_the_time('Y')) . '" href="' . esc_url(get_year_link( get_the_time('Y') )) . '" title="' . esc_attr(get_the_time('Y')) . '">' . esc_attr(get_the_time('Y')) . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </a></li>';
207
 
208
  // Month display
209
+ echo '<li class="item-month item-month-' . esc_attr(get_the_time('m')) . '"><strong class="bread-month bread-month-' . esc_attr(get_the_time('m')) . '" title="' . esc_attr(get_the_time('M')) . '">' . esc_attr(get_the_time('M')) . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </strong></li>';
210
 
211
  } else if ( is_year() ) {
212
 
213
  // Display year archive
214
+ echo '<li class="item-current item-current-' . esc_attr(get_the_time('Y')) . '"><strong class="bread-current bread-current-' . esc_attr(get_the_time('Y')) . '" title="' . esc_attr(get_the_time('Y')) . '">' . esc_attr(get_the_time('Y')) . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')). ' </strong></li>';
215
 
216
  } else if ( get_query_var('paged') ) {
217
 
218
  // Paginated archives
219
+ echo '<li class="item-current item-current-' . esc_attr(get_query_var('paged')) . '"><strong class="bread-current bread-current-' . esc_attr(get_query_var('paged')) . '" title="Page ' . esc_attr(get_query_var('paged')) . '">'. esc_html(ampforwp_translation($redux_builder_amp['amp-translator-page-text'], 'Page')) . ' ' . esc_attr(get_query_var('paged')) . '</strong></li>';
220
 
221
  } else if ( is_search() ) {
222
 
223
  // Search results page
224
+ echo '<li class="item-current item-current-' . esc_attr(get_search_query()) . '"><strong class="bread-current bread-current-' . esc_attr(get_search_query()) . '" title="Search results for: ' . esc_attr(get_search_query()) . '">
225
+ ' . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-breadcrumbs-search-text'], 'Search results for')) . ': ' . esc_attr(get_search_query()) . '</strong></li>';
226
 
227
  } elseif ( is_404() ) {
228
 
229
  // 404 page
230
+ echo '<li>' . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-error-404-text'], 'Error 404')) . '</li>';
231
  }
232
  echo '</ul>';
233
 
templates/design-manager/design-2/elements/comments.php CHANGED
@@ -21,7 +21,7 @@
21
  $comment_nums = " ($comment_nums) " ?>
22
 
23
  <div class="amp-wp-content comments_list">
24
- <h3><?php echo ampforwp_translation($redux_builder_amp['amp-translator-view-comments-text'] , 'View Comments' ). $comment_nums?></h3>
25
  <ul> <?php // Display the list of comments
26
  function ampforwp_custom_translated_comment($comment, $args, $depth){
27
  global $redux_builder_amp;
@@ -40,12 +40,12 @@
40
  <amp-img <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> src="<?php echo esc_url($comment_author_img_url); ?>" width="40" height="40" layout="fixed" class="comment-author-img"></amp-img>
41
  <?php } ?>
42
  <div class="comment-author vcard">
43
- <?php printf(__('<b class="fn">%s</b> <span class="says">'.ampforwp_translation($redux_builder_amp['amp-translator-says-text'],'says').':</span>'), get_comment_author_link()) ?>
44
  </div>
45
  <!-- .comment-author -->
46
  <div class="comment-metadata">
47
- <a href="<?php echo htmlspecialchars( untrailingslashit( get_comment_link( $comment->comment_ID ) ) ) ?>">
48
- <?php printf( ampforwp_translation( ('%1$s '. ampforwp_translation($redux_builder_amp['amp-translator-at-text'],'at').' %2$s'), '%1$s at %2$s') , get_comment_date(), get_comment_time())?>
49
  </a>
50
  <?php edit_comment_link( ampforwp_translation( $redux_builder_amp['amp-translator-Edit-text'], 'Edit' ) ) ?>
51
  </div>
@@ -63,7 +63,7 @@
63
  'AMP_Style_Sanitizer' => array()
64
  ) ) );
65
  $sanitized_comment_content = $sanitizer->get_amp_content();
66
- echo make_clickable( $sanitized_comment_content ); ?>
67
  </div>
68
  <?php do_action('ampforwp_reply_comment_form', $comment, $args, $depth); ?>
69
  </article> <!-- .comment-body -->
@@ -99,9 +99,9 @@
99
  if ( ! defined( 'AMP_COMMENTS_VERSION' ) ) { ?>
100
  <div class="comment-button-wrapper">
101
  <?php if ( comments_open() ) { ?>
102
- <a href="<?php echo ampforwp_comment_button_url(); ?>" rel="nofollow"><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-leave-a-comment-text'], 'Leave a Comment' ); ?></a> <?php
103
  } else {
104
- echo "<p class='nocomments'>".ampforwp_translation( $redux_builder_amp['amp-translator-comments-closed'], 'Comments are closed' ) ." </p>";
105
  }?>
106
  </div> <?php
107
  } ?>
21
  $comment_nums = " ($comment_nums) " ?>
22
 
23
  <div class="amp-wp-content comments_list">
24
+ <h3><?php echo esc_attr(ampforwp_translation($redux_builder_amp['amp-translator-view-comments-text'] , 'View Comments' )). $comment_nums?></h3>
25
  <ul> <?php // Display the list of comments
26
  function ampforwp_custom_translated_comment($comment, $args, $depth){
27
  global $redux_builder_amp;
40
  <amp-img <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> src="<?php echo esc_url($comment_author_img_url); ?>" width="40" height="40" layout="fixed" class="comment-author-img"></amp-img>
41
  <?php } ?>
42
  <div class="comment-author vcard">
43
+ <?php printf(__('<b class="fn">%s</b> <span class="says">'.esc_html(ampforwp_translation($redux_builder_amp['amp-translator-says-text'],'says')).':</span>'), get_comment_author_link()) ?>
44
  </div>
45
  <!-- .comment-author -->
46
  <div class="comment-metadata">
47
+ <a href="<?php echo esc_url(htmlspecialchars( untrailingslashit( get_comment_link( $comment->comment_ID ) ) )) ?>">
48
+ <?php printf( esc_attr(ampforwp_translation( ('%1$s '. ampforwp_translation($redux_builder_amp['amp-translator-at-text'],'at').' %2$s'), '%1$s at %2$s') ), get_comment_date(), get_comment_time())?>
49
  </a>
50
  <?php edit_comment_link( ampforwp_translation( $redux_builder_amp['amp-translator-Edit-text'], 'Edit' ) ) ?>
51
  </div>
63
  'AMP_Style_Sanitizer' => array()
64
  ) ) );
65
  $sanitized_comment_content = $sanitizer->get_amp_content();
66
+ echo make_clickable( $sanitized_comment_content );// amphtml content, no kses ?>
67
  </div>
68
  <?php do_action('ampforwp_reply_comment_form', $comment, $args, $depth); ?>
69
  </article> <!-- .comment-body -->
99
  if ( ! defined( 'AMP_COMMENTS_VERSION' ) ) { ?>
100
  <div class="comment-button-wrapper">
101
  <?php if ( comments_open() ) { ?>
102
+ <a href="<?php echo esc_url(ampforwp_comment_button_url()); ?>" rel="nofollow"><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-leave-a-comment-text'], 'Leave a Comment' ); ?></a> <?php
103
  } else {
104
+ echo "<p class='nocomments'>".esc_attr(ampforwp_translation( $redux_builder_amp['amp-translator-comments-closed'], 'Comments are closed' )) ." </p>";
105
  }?>
106
  </div> <?php
107
  } ?>
templates/design-manager/design-2/elements/content.php CHANGED
@@ -39,7 +39,7 @@
39
 
40
  //Filter to modify the Content
41
  $ampforwp_the_content = apply_filters('ampforwp_modify_the_content', $ampforwp_the_content);
42
- echo $ampforwp_the_content;
43
  do_action('ampforwp_after_post_content',$this) ; //Post After Content here
44
  ?>
45
 
@@ -55,14 +55,14 @@
55
  <?php $next_post = get_next_post();
56
  if (!empty( $next_post )) { ?>
57
  <div class="next">
58
- <?php $next_text = $next_post->post_title; ?> <a href="<?php echo ampforwp_url_controller( get_permalink( $next_post->ID ) ); ?>"><?php echo apply_filters('ampforwp_next_link',$next_text ); ?> &raquo;</a>
59
  </div>
60
  <?php }
61
  $prev_post = get_previous_post();
62
  if (!empty( $prev_post )) { ?>
63
  <div class="prev">
64
  <?php $prev_text = $prev_post->post_title; ?>
65
- <a href="<?php echo ampforwp_url_controller( get_permalink( $prev_post->ID ) ); ?>"> &laquo; <?php echo apply_filters('ampforwp_prev_link',$prev_text ); ?></a>
66
  </div>
67
  <?php } ?>
68
  <div class="clearfix"></div>
39
 
40
  //Filter to modify the Content
41
  $ampforwp_the_content = apply_filters('ampforwp_modify_the_content', $ampforwp_the_content);
42
+ echo $ampforwp_the_content;// amphtml content, no kses
43
  do_action('ampforwp_after_post_content',$this) ; //Post After Content here
44
  ?>
45
 
55
  <?php $next_post = get_next_post();
56
  if (!empty( $next_post )) { ?>
57
  <div class="next">
58
+ <?php $next_text = $next_post->post_title; ?> <a href="<?php echo ampforwp_url_controller( get_permalink( $next_post->ID ) ); ?>"><?php echo esc_attr(apply_filters('ampforwp_next_link',$next_text )); ?> &raquo;</a>
59
  </div>
60
  <?php }
61
  $prev_post = get_previous_post();
62
  if (!empty( $prev_post )) { ?>
63
  <div class="prev">
64
  <?php $prev_text = $prev_post->post_title; ?>
65
+ <a href="<?php echo ampforwp_url_controller( get_permalink( $prev_post->ID ) ); ?>"> &laquo; <?php echo esc_attr(apply_filters('ampforwp_prev_link',$prev_text )); ?></a>
66
  </div>
67
  <?php } ?>
68
  <div class="clearfix"></div>
templates/design-manager/design-2/elements/meta-info.php CHANGED
@@ -17,7 +17,7 @@ if ( is_single() || (is_page() && $redux_builder_amp['meta_page']) ) : ?>
17
  if( 2 == $redux_builder_amp['ampforwp-post-date-global'] ){
18
  $date = get_the_modified_date( get_option( 'date_format' )) . ', ' . get_the_modified_time() ;
19
  }
20
- echo apply_filters('ampforwp_modify_post_date', ampforwp_translation($redux_builder_amp['amp-translator-on-text'], 'On') . ' ' . $date ) ?></li>
21
  <?php } ?>
22
  </div>
23
  <?php endif; ?>
@@ -28,17 +28,13 @@ if( isset($redux_builder_amp['ampforwp-cats-single']) && $redux_builder_amp['amp
28
  if ( $ampforwp_categories ) : ?>
29
  <div class="amp-wp-meta amp-wp-tax-category ampforwp-tax-category">
30
  <span>
31
- <?php global $redux_builder_amp;
32
-
33
- global $redux_builder_amp; printf( ampforwp_translation($redux_builder_amp['amp-translator-categories-text'], 'Categories:' ). ' ');
34
-
35
- ?>
36
  </span>
37
  <?php foreach ($ampforwp_categories as $cat ) {
38
  if( isset($redux_builder_amp['ampforwp-archive-support']) && $redux_builder_amp['ampforwp-archive-support'] && isset($redux_builder_amp['ampforwp-cats-tags-links-single']) && $redux_builder_amp['ampforwp-cats-tags-links-single']) {
39
  echo ('<span class="amp-cat-'.$cat->term_id.'"><a href="'. ampforwp_url_controller( get_category_link( $cat->term_id ) ) . '" >'.$cat->name .'</a></span>');//#934
40
  } else {
41
- echo ('<span>'.$cat->name .'</span>');
42
  }
43
  }
44
 
17
  if( 2 == $redux_builder_amp['ampforwp-post-date-global'] ){
18
  $date = get_the_modified_date( get_option( 'date_format' )) . ', ' . get_the_modified_time() ;
19
  }
20
+ echo esc_attr(apply_filters('ampforwp_modify_post_date', ampforwp_translation($redux_builder_amp['amp-translator-on-text'], 'On') . ' ' . $date )) ?></li>
21
  <?php } ?>
22
  </div>
23
  <?php endif; ?>
28
  if ( $ampforwp_categories ) : ?>
29
  <div class="amp-wp-meta amp-wp-tax-category ampforwp-tax-category">
30
  <span>
31
+ <?php printf( esc_attr(ampforwp_translation($redux_builder_amp['amp-translator-categories-text'], 'Categories:' )). ' ');?>
 
 
 
 
32
  </span>
33
  <?php foreach ($ampforwp_categories as $cat ) {
34
  if( isset($redux_builder_amp['ampforwp-archive-support']) && $redux_builder_amp['ampforwp-archive-support'] && isset($redux_builder_amp['ampforwp-cats-tags-links-single']) && $redux_builder_amp['ampforwp-cats-tags-links-single']) {
35
  echo ('<span class="amp-cat-'.$cat->term_id.'"><a href="'. ampforwp_url_controller( get_category_link( $cat->term_id ) ) . '" >'.$cat->name .'</a></span>');//#934
36
  } else {
37
+ echo ('<span>'.esc_attr($cat->name) .'</span>');
38
  }
39
  }
40
 
templates/design-manager/design-2/elements/meta-taxonomy.php CHANGED
@@ -8,20 +8,20 @@
8
  <?php
9
  //if RTL is OFF
10
  if(!$redux_builder_amp['amp-rtl-select-option']) {
11
- global $redux_builder_amp; printf( ampforwp_translation($redux_builder_amp['amp-translator-tags-text'], 'Tags:' ) .' ' );
12
  }
13
 
14
  foreach ($ampforwp_tags as $tag) {
15
  if( isset($redux_builder_amp['ampforwp-archive-support']) && $redux_builder_amp['ampforwp-archive-support'] && isset($redux_builder_amp['ampforwp-cats-tags-links-single']) && $redux_builder_amp['ampforwp-cats-tags-links-single']) {
16
- echo ('<span class="amp-tag-'.$tag->term_id.'"><a href="'. ampforwp_url_controller( get_tag_link( $tag->term_id ) ).'" >'.$tag->name .'</a></span>');//#934
17
  } else {
18
- echo ('<span>'.$tag->name .'</span>');
19
  }
20
  }
21
 
22
  //if RTL is ON
23
  if($redux_builder_amp['amp-rtl-select-option']) {
24
- global $redux_builder_amp; echo '<span class="tt-lb">'.( ampforwp_translation($redux_builder_amp['amp-translator-tags-text'], 'Tags:' ) .' ' ).'</span>';
25
  }
26
  ?>
27
 
@@ -44,11 +44,11 @@ if( array_key_exists( 'amp-author-description' , $redux_builder_amp ) && is_sing
44
  $author_avatar_url = get_avatar_url( $post_author->user_email, array( 'size' => 70 ) );
45
  }
46
  if ( $author_avatar_url ) { ?>
47
- <amp-img <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> src="<?php echo $author_avatar_url; ?>" width="70" height="70" layout="fixed"></amp-img>
48
  <?php
49
  }
50
- echo ampforwp_get_author_details( $post_author , 'meta-taxonomy' );
51
- echo $post_author->description ; ?>
52
 
53
  <?php } ?>
54
  </div>
8
  <?php
9
  //if RTL is OFF
10
  if(!$redux_builder_amp['amp-rtl-select-option']) {
11
+ printf( esc_attr(ampforwp_translation($redux_builder_amp['amp-translator-tags-text'], 'Tags:' ) .' ' ));
12
  }
13
 
14
  foreach ($ampforwp_tags as $tag) {
15
  if( isset($redux_builder_amp['ampforwp-archive-support']) && $redux_builder_amp['ampforwp-archive-support'] && isset($redux_builder_amp['ampforwp-cats-tags-links-single']) && $redux_builder_amp['ampforwp-cats-tags-links-single']) {
16
+ echo ('<span class="amp-tag-'.esc_attr($tag->term_id).'"><a href="'. ampforwp_url_controller( get_tag_link( $tag->term_id ) ).'" >'.esc_attr($tag->name) .'</a></span>');//#934
17
  } else {
18
+ echo ('<span>'.esc_attr($tag->name) .'</span>');
19
  }
20
  }
21
 
22
  //if RTL is ON
23
  if($redux_builder_amp['amp-rtl-select-option']) {
24
+ echo '<span class="tt-lb">'.esc_attr( ampforwp_translation($redux_builder_amp['amp-translator-tags-text'], 'Tags:' ) .' ' ).'</span>';
25
  }
26
  ?>
27
 
44
  $author_avatar_url = get_avatar_url( $post_author->user_email, array( 'size' => 70 ) );
45
  }
46
  if ( $author_avatar_url ) { ?>
47
+ <amp-img <?php if(ampforwp_get_data_consent()){?>data-block-on-consent <?php } ?> src="<?php echo esc_url($author_avatar_url); ?>" width="70" height="70" layout="fixed"></amp-img>
48
  <?php
49
  }
50
+ echo ampforwp_get_author_details( $post_author , 'meta-taxonomy' );
51
+ echo $post_author->description; ?>
52
 
53
  <?php } ?>
54
  </div>
templates/design-manager/design-2/elements/related-posts.php CHANGED
@@ -80,7 +80,7 @@ if( isset($redux_builder_amp['ampforwp-single-related-posts-switch']) && $redux_
80
  <div class="amp-wp-content relatedpost">
81
  <div class="related_posts">
82
  <ol class="clearfix">
83
- <span class="related-title"><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-related-text'], 'Related Post' ); ?></span>
84
  <?php
85
  while( $my_query->have_posts() ) {
86
  $my_query->the_post();
80
  <div class="amp-wp-content relatedpost">
81
  <div class="related_posts">
82
  <ol class="clearfix">
83
+ <span class="related-title"><?php echo esc_attr(ampforwp_translation( $redux_builder_amp['amp-translator-related-text'], 'Related Post' )); ?></span>
84
  <?php
85
  while( $my_query->have_posts() ) {
86
  $my_query->the_post();
templates/design-manager/design-2/elements/simple-comment-button.php CHANGED
@@ -6,6 +6,6 @@ if (!comments_open() || $redux_builder_amp['ampforwp-disqus-comments-support'] |
6
  <?php include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
7
  if( ! is_plugin_active( 'amp-comments/amp-comments.php' ) ) { ?>
8
  <div class="comment-button-wrapper ampforwp-comment-button">
9
- <a href="<?php echo ampforwp_comment_button_url(); ?>" rel="nofollow"><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-leave-a-comment-text'], 'Leave a Comment' ); ?></a>
10
  </div>
11
  <?php } ?>
6
  <?php include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
7
  if( ! is_plugin_active( 'amp-comments/amp-comments.php' ) ) { ?>
8
  <div class="comment-button-wrapper ampforwp-comment-button">
9
+ <a href="<?php echo esc_url(ampforwp_comment_button_url()); ?>" rel="nofollow"><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-leave-a-comment-text'], 'Leave a Comment' ); ?></a>
10
  </div>
11
  <?php } ?>
templates/design-manager/design-2/elements/social-icons.php CHANGED
@@ -29,7 +29,7 @@ if ( is_single() || (is_page() && isset($redux_builder_amp['ampforwp-page-social
29
  <?php }
30
  } ?>
31
  <?php if($redux_builder_amp['enable-single-facebook-share'] == true) { ?>
32
- <amp-social-share type="facebook" data-param-app_id="<?php echo $redux_builder_amp['amp-facebook-app-id']; ?>" width="50" height="28"></amp-social-share>
33
  <?php } ?>
34
  <?php if($redux_builder_amp['enable-single-twitter-share'] == true) {
35
  $data_param_data = $redux_builder_amp['enable-single-twitter-share-handle'];?>
@@ -37,7 +37,7 @@ if ( is_single() || (is_page() && isset($redux_builder_amp['ampforwp-page-social
37
  width="50"
38
  height="28"
39
  data-param-url=""
40
- data-param-text="TITLE <?php echo $permalink.' '.ampforwp_translation( $redux_builder_amp['amp-translator-via-text'], 'via' ).' '.$data_param_data ?>"
41
  ></amp-social-share>
42
  <?php } ?>
43
  <?php if($redux_builder_amp['enable-single-gplus-share'] == true) { ?>
29
  <?php }
30
  } ?>
31
  <?php if($redux_builder_amp['enable-single-facebook-share'] == true) { ?>
32
+ <amp-social-share type="facebook" data-param-app_id="<?php echo esc_attr($redux_builder_amp['amp-facebook-app-id']); ?>" width="50" height="28"></amp-social-share>
33
  <?php } ?>
34
  <?php if($redux_builder_amp['enable-single-twitter-share'] == true) {
35
  $data_param_data = $redux_builder_amp['enable-single-twitter-share-handle'];?>
37
  width="50"
38
  height="28"
39
  data-param-url=""
40
+ data-param-text="TITLE <?php echo esc_url($permalink).' '.esc_attr(ampforwp_translation( $redux_builder_amp['amp-translator-via-text'], 'via' ).' '.$data_param_data )?>"
41
  ></amp-social-share>
42
  <?php } ?>
43
  <?php if($redux_builder_amp['enable-single-gplus-share'] == true) { ?>
templates/design-manager/design-2/elements/title.php CHANGED
@@ -10,7 +10,7 @@ do_action('ampforwp_above_the_title',$this); ?>
10
  if(has_excerpt()){ ?>
11
  <div class="ampforwp_single_excerpt">
12
  <?php $content = get_the_excerpt();
13
- echo $content; ?>
14
  </div>
15
  <?php }
16
  }
10
  if(has_excerpt()){ ?>
11
  <div class="ampforwp_single_excerpt">
12
  <?php $content = get_the_excerpt();
13
+ echo wp_kses_post($content); ?>
14
  </div>
15
  <?php }
16
  }
templates/design-manager/design-2/footer.php CHANGED
@@ -16,12 +16,12 @@
16
  $menu = apply_filters('ampforwp_menu_content', $menu);
17
  $sanitizer_obj = new AMPFORWP_Content( $menu, array(), apply_filters( 'ampforwp_content_sanitizers', array( 'AMP_Img_Sanitizer' => array(), 'AMP_Style_Sanitizer' => array(), ) ) );
18
  $sanitized_menu = $sanitizer_obj->get_amp_content();
19
- echo $sanitized_menu; ?>
20
  </nav>
21
  </div>
22
  <?php } ?>
23
  <p><?php
24
- if($redux_builder_amp['ampforwp-footer-top']=='1') { ?><a title="back to top" on="tap:backtotop.scrollTo(duration=500)" class="btt" ><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-top-text'], 'Top'); ?></a><?php }
25
  if($redux_builder_amp['amp-footer-link-non-amp-page']=='1') {
26
  if($redux_builder_amp['ampforwp-footer-top']=='1') { ?> | <?php
27
  ampforwp_view_nonamp();
@@ -30,8 +30,8 @@
30
  ampforwp_view_nonamp();
31
  }
32
  }
33
- $allowed_html = ampforwp_wp_kses_allowed_html();
34
- echo wp_kses( ampforwp_translation($redux_builder_amp['amp-translator-footer-text'], 'Footer'),$allowed_html);
35
  ?></p>
36
  <?php do_action('amp_footer_link'); ?>
37
  </div>
16
  $menu = apply_filters('ampforwp_menu_content', $menu);
17
  $sanitizer_obj = new AMPFORWP_Content( $menu, array(), apply_filters( 'ampforwp_content_sanitizers', array( 'AMP_Img_Sanitizer' => array(), 'AMP_Style_Sanitizer' => array(), ) ) );
18
  $sanitized_menu = $sanitizer_obj->get_amp_content();
19
+ echo $sanitized_menu;//amphtml content, no kses ?>
20
  </nav>
21
  </div>
22
  <?php } ?>
23
  <p><?php
24
+ if($redux_builder_amp['ampforwp-footer-top']=='1') { ?><a title="back to top" on="tap:backtotop.scrollTo(duration=500)" class="btt" ><?php echo esc_attr(ampforwp_translation( $redux_builder_amp['amp-translator-top-text'], 'Top')); ?></a><?php }
25
  if($redux_builder_amp['amp-footer-link-non-amp-page']=='1') {
26
  if($redux_builder_amp['ampforwp-footer-top']=='1') { ?> | <?php
27
  ampforwp_view_nonamp();
30
  ampforwp_view_nonamp();
31
  }
32
  }
33
+ $allowed_tags = '<p><a><b><strong><i><u><ul><ol><li><h1><h2><h3><h4><h5><h6><table><tr><th><td><em><span>';
34
+ echo strip_tags( ampforwp_translation($redux_builder_amp['amp-translator-footer-text'], 'Footer') ,$allowed_tags );
35
  ?></p>
36
  <?php do_action('amp_footer_link'); ?>
37
  </div>
templates/design-manager/design-2/frontpage.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  $template = new AMP_Post_Template( $post_id );?>
6
  <!doctype html>
7
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $template->get( 'html_tag_attributes' ) ); ?>>
8
  <head>
9
  <meta charset="utf-8">
10
  <?php do_action( 'amp_post_template_head', $template ); ?>
4
 
5
  $template = new AMP_Post_Template( $post_id );?>
6
  <!doctype html>
7
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $template->get( 'html_tag_attributes' ) )); ?>>
8
  <head>
9
  <meta charset="utf-8">
10
  <?php do_action( 'amp_post_template_head', $template ); ?>
templates/design-manager/design-2/header-bar.php CHANGED
@@ -13,7 +13,7 @@
13
 
14
  <?php if(isset($redux_builder_amp['ampforwp-amp-menu']) && $redux_builder_amp['ampforwp-amp-menu']){ ?>
15
  <div on='tap:sidebar.toggle' aria-label="Navigation" role="button" tabindex="0" class="nav_container">
16
- <a href="#" class="toggle-text"><?php echo ampforwp_translation( $redux_builder_amp['amp-translator-navigate-text'], 'Navigate' ); ?></a>
17
  </div>
18
 
19
  <amp-sidebar id='sidebar'
@@ -37,7 +37,7 @@
37
  $menu_html_content = apply_filters('ampforwp_menu_content',$menu_html_content);
38
  $sanitizer_obj = new AMPFORWP_Content( $menu_html_content, array(), apply_filters( 'ampforwp_content_sanitizers', array( 'AMP_Img_Sanitizer' => array(), 'AMP_Style_Sanitizer' => array(), ) ) );
39
  $sanitized_menu = $sanitizer_obj->get_amp_content();
40
- echo $sanitized_menu;
41
  ?>
42
  </nav>
43
  <?php do_action('ampforwp_after_amp_menu'); ?>
13
 
14
  <?php if(isset($redux_builder_amp['ampforwp-amp-menu']) && $redux_builder_amp['ampforwp-amp-menu']){ ?>
15
  <div on='tap:sidebar.toggle' aria-label="Navigation" role="button" tabindex="0" class="nav_container">
16
+ <a href="#" class="toggle-text"><?php echo esc_attr(ampforwp_translation( $redux_builder_amp['amp-translator-navigate-text'], 'Navigate' )); ?></a>
17
  </div>
18
 
19
  <amp-sidebar id='sidebar'
37
  $menu_html_content = apply_filters('ampforwp_menu_content',$menu_html_content);
38
  $sanitizer_obj = new AMPFORWP_Content( $menu_html_content, array(), apply_filters( 'ampforwp_content_sanitizers', array( 'AMP_Img_Sanitizer' => array(), 'AMP_Style_Sanitizer' => array(), ) ) );
39
  $sanitized_menu = $sanitizer_obj->get_amp_content();
40
+ echo $sanitized_menu; //amphtml content, no kses
41
  ?>
42
  </nav>
43
  <?php do_action('ampforwp_after_amp_menu'); ?>
templates/design-manager/design-2/index.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php global $redux_builder_amp; ?>
2
  <!doctype html>
3
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) ); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
@@ -48,7 +48,7 @@
48
  }
49
  $blog_title = ampforwp_get_blog_details('title');
50
  if( ampforwp_is_blog() && $blog_title){ ?>
51
- <h1 class="page-title"><?php echo $blog_title ?></h1>
52
  <?php }
53
  if ( $q->have_posts() ) : while ( $q->have_posts() ) : $q->the_post();
54
  $ampforwp_amp_post_url = ampforwp_url_controller( get_permalink() ); ?>
@@ -80,7 +80,7 @@
80
  <time> <?php
81
  $post_date = human_time_diff( get_the_time('U', get_the_ID() ), current_time('timestamp') ) .' '. ampforwp_translation( $redux_builder_amp['amp-translator-ago-date-text'],'ago' );
82
  $post_date = apply_filters('ampforwp_modify_post_date',$post_date);
83
- echo $post_date ; ?>
84
  </time>
85
  <?php $post_author = $this->get( 'post_author' ); ?>
86
  <div class="amp-wp-author-name">
1
  <?php global $redux_builder_amp; ?>
2
  <!doctype html>
3
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) )); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
48
  }
49
  $blog_title = ampforwp_get_blog_details('title');
50
  if( ampforwp_is_blog() && $blog_title){ ?>
51
+ <h1 class="page-title"><?php echo esc_attr($blog_title) ?></h1>
52
  <?php }
53
  if ( $q->have_posts() ) : while ( $q->have_posts() ) : $q->the_post();
54
  $ampforwp_amp_post_url = ampforwp_url_controller( get_permalink() ); ?>
80
  <time> <?php
81
  $post_date = human_time_diff( get_the_time('U', get_the_ID() ), current_time('timestamp') ) .' '. ampforwp_translation( $redux_builder_amp['amp-translator-ago-date-text'],'ago' );
82
  $post_date = apply_filters('ampforwp_modify_post_date',$post_date);
83
+ echo esc_attr($post_date) ; ?>
84
  </time>
85
  <?php $post_author = $this->get( 'post_author' ); ?>
86
  <div class="amp-wp-author-name">
templates/design-manager/design-2/search.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php global $redux_builder_amp; ?>
2
  <!doctype html>
3
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) ); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <meta name="robots" content="noindex,nofollow"/>
@@ -53,7 +53,7 @@
53
  };?>
54
 
55
  <div class="amp-wp-content amp-archive-heading">
56
- <h1 class="page-title"><?php echo ampforwp_translation($redux_builder_amp['amp-translator-search-text'], 'You searched for:' ) . ' ' . get_search_query();?></h1>
57
  </div>
58
  <?php if ( $q->have_posts() ) : while ( $q->have_posts() ) : $q->the_post();
59
  $ampforwp_amp_post_url = ampforwp_url_controller( get_permalink() ); ?>
@@ -90,8 +90,8 @@
90
  <?php else: ?>
91
  <div class="amp-wp-content amp-loop-list">
92
  <div class="amp-wp-post-content">
93
- <?php echo ampforwp_translation($redux_builder_amp['amp-translator-search-no-found'],
94
- 'It seems we can\'t find what you\'re looking for. '); ?>
95
  </div>
96
  <div class="cb"></div>
97
  </div>
1
  <?php global $redux_builder_amp; ?>
2
  <!doctype html>
3
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) )); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <meta name="robots" content="noindex,nofollow"/>
53
  };?>
54
 
55
  <div class="amp-wp-content amp-archive-heading">
56
+ <h1 class="page-title"><?php echo esc_attr(ampforwp_translation($redux_builder_amp['amp-translator-search-text'], 'You searched for:' ) . ' ' . get_search_query());?></h1>
57
  </div>
58
  <?php if ( $q->have_posts() ) : while ( $q->have_posts() ) : $q->the_post();
59
  $ampforwp_amp_post_url = ampforwp_url_controller( get_permalink() ); ?>
90
  <?php else: ?>
91
  <div class="amp-wp-content amp-loop-list">
92
  <div class="amp-wp-post-content">
93
+ <?php echo esc_attr(ampforwp_translation($redux_builder_amp['amp-translator-search-no-found'],
94
+ 'It seems we can\'t find what you\'re looking for. ')); ?>
95
  </div>
96
  <div class="cb"></div>
97
  </div>
templates/design-manager/design-2/single.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php global $redux_builder_amp;?>
2
  <!doctype html>
3
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) ); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
1
  <?php global $redux_builder_amp;?>
2
  <!doctype html>
3
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) )); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
templates/design-manager/design-2/style.php CHANGED
@@ -296,7 +296,7 @@ amp-carousel{direction: ltr;} .tt-lb{float:right;margin-left:5px;}
296
  }
297
  <?php } ?>
298
  .amp-wp-tax-tag a, a, .amp-wp-author, .headerlogo a, [class*=icono-] { color: <?php echo sanitize_hex_color( $header_background_color ); ?>;; }
299
- body a {color: <?php echo $redux_builder_amp['amp-opt-color-rgba-link-design2']['color'];?> }
300
  .amp-wp-content blockquote{ border-color:<?php echo sanitize_hex_color( $header_background_color ); ?>;; }
301
  .nav_container, .comment-button-wrapper a { background: <?php echo sanitize_hex_color( $header_background_color ); ?>;; }
302
  .nav_container a{ color:<?php echo sanitize_hex_color( $header_color ); ?> }
@@ -315,7 +315,7 @@ amp-user-notification button { background-color: <?php echo sanitize_hex_color(
315
  <?php if ($redux_builder_amp['ampforwp-callnow-button']) { ?>
316
  .callnow{ left: 58px; top: 36%; position: absolute;
317
  }
318
- .callnow a:before { content: ""; position: absolute; right: 23px; width: 4px; height: 8px; border-width: 6px 0 6px 3px; border-style: solid; border-color:<?php echo $redux_builder_amp['amp-opt-color-rgba-colorscheme-call']['color']; ?>; background: transparent; transform: rotate(-30deg); box-sizing: initial; border-top-left-radius: 3px 5px; border-bottom-left-radius: 3px 5px; }
319
  <?php } ?>
320
  <?php if ( class_exists('TablePress') ) { ?>
321
  .tablepress-table-description { clear: both; display: block; }
296
  }
297
  <?php } ?>
298
  .amp-wp-tax-tag a, a, .amp-wp-author, .headerlogo a, [class*=icono-] { color: <?php echo sanitize_hex_color( $header_background_color ); ?>;; }
299
+ body a {color: <?php echo ampforwp_sanitize_color($redux_builder_amp['amp-opt-color-rgba-link-design2']['color']);?> }
300
  .amp-wp-content blockquote{ border-color:<?php echo sanitize_hex_color( $header_background_color ); ?>;; }
301
  .nav_container, .comment-button-wrapper a { background: <?php echo sanitize_hex_color( $header_background_color ); ?>;; }
302
  .nav_container a{ color:<?php echo sanitize_hex_color( $header_color ); ?> }
315
  <?php if ($redux_builder_amp['ampforwp-callnow-button']) { ?>
316
  .callnow{ left: 58px; top: 36%; position: absolute;
317
  }
318
+ .callnow a:before { content: ""; position: absolute; right: 23px; width: 4px; height: 8px; border-width: 6px 0 6px 3px; border-style: solid; border-color:<?php echo ampforwp_sanitize_color($redux_builder_amp['amp-opt-color-rgba-colorscheme-call']['color']); ?>; background: transparent; transform: rotate(-30deg); box-sizing: initial; border-top-left-radius: 3px 5px; border-bottom-left-radius: 3px 5px; }
319
  <?php } ?>
320
  <?php if ( class_exists('TablePress') ) { ?>
321
  .tablepress-table-description { clear: both; display: block; }
templates/design-manager/design-3/404.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php global $redux_builder_amp; ?>
2
  <!doctype html>
3
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) ); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
@@ -20,7 +20,7 @@
20
  <article class="amp-wp-content amp-loop-list">
21
  <?php do_action('ampforwp_post_before_design_elements') ?>
22
  <h1 class="amp-wp-title"><?php global $redux_builder_amp; echo
23
- ampforwp_translation( $redux_builder_amp['amp-translator-fourohfour'], 'Oops! That page can’t be found.'); ?></h1>
24
  <?php do_action('ampforwp_post_after_design_elements') ?>
25
  </article>
26
  </main>
1
  <?php global $redux_builder_amp; ?>
2
  <!doctype html>
3
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) )); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
20
  <article class="amp-wp-content amp-loop-list">
21
  <?php do_action('ampforwp_post_before_design_elements') ?>
22
  <h1 class="amp-wp-title"><?php global $redux_builder_amp; echo
23
+ esc_attr(ampforwp_translation( $redux_builder_amp['amp-translator-fourohfour'], 'Oops! That page can’t be found.')); ?></h1>
24
  <?php do_action('ampforwp_post_after_design_elements') ?>
25
  </article>
26
  </main>
templates/design-manager/design-3/archive.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php global $redux_builder_amp, $wp, $wp_query; ?>
2
  <!doctype html>
3
- <html amp <?php echo AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) ); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
@@ -25,7 +25,7 @@
25
  $amp_component_scripts = $sanitizer->amp_scripts;
26
  if ( $sanitizer && $amp_component_scripts) {
27
  foreach ($amp_component_scripts as $ampforwp_service => $ampforwp_js_file) { ?>
28
- <script custom-element="<?php echo $ampforwp_service; ?>" src="<?php echo $ampforwp_js_file; ?>" async></script> <?php
29
  }
30
  }?>
31
  <style amp-custom>
@@ -86,7 +86,7 @@ if ( get_query_var( 'paged' ) ) {
86
  if( $arch_desc ) {
87
  if($paged <= '1') {?>
88
  <div class="taxonomy-description">
89
- <?php echo $arch_desc ; ?>
90
  </div>
91
  </div> <?php
92
  }
@@ -102,7 +102,7 @@ if ( get_query_var( 'paged' ) ) {
102
  if(!empty($cat_childs)){
103
  echo "<div class='amp-sub-archives'><ul>";
104
  foreach ($cat_childs as $cat_child ) {
105
- echo '<li><a href="' . get_term_link( $cat_child ) . '">' . $cat_child->name . '</a></li>';
106
  }
107
  echo "</ul></div>";
108
  }
@@ -131,8 +131,8 @@ if ( get_query_var( 'paged' ) ) {
131
  layout="responsive"
132
  src=<?php echo esc_url($thumb_url); ?>
133
  <?php ampforwp_thumbnail_alt(); ?>
134
- width=<?php echo $thumb_width; ?>
135
- height=<?php echo $thumb_height; ?>
136
  ></amp-img>
137
  </a>
138
  </div>
@@ -143,10 +143,10 @@ if ( get_query_var( 'paged' ) ) {
143
  <ul class="amp-wp-tags">
144
  <?php foreach((get_the_category()) as $category) {
145
  if ( true == $redux_builder_amp['ampforwp-archive-support'] ) { ?>
146
- <li class="amp-cat-<?php echo $category->term_id;?>"><a href="<?php echo esc_url(ampforwp_url_controller( get_category_link( $category->term_id ) )); ?>" ><?php echo $category->cat_name ?></a></li>
147
  <?php }
148
  else { ?>
149
- <li class="amp-cat-<?php echo $category->term_id;?>"><?php echo $category->cat_name ?></li>
150
  <?php }
151
  } ?>
152
  </ul>
@@ -161,7 +161,7 @@ if ( get_query_var( 'paged' ) ) {
161
  <div class="featured_time"><?php
162
  $post_date = human_time_diff( get_the_time('U', get_the_ID() ), current_time('timestamp') ) .' '. ampforwp_translation( $redux_builder_amp['amp-translator-ago-date-text'],'ago' );
163
  $post_date = apply_filters('ampforwp_modify_post_date',$post_date);
164
- echo $post_date ;?>
165
  </div>
166
  </div>
167
  <div class="cb"></div>
1
  <?php global $redux_builder_amp, $wp, $wp_query; ?>
2
  <!doctype html>
3
+ <html amp <?php echo esc_attr(AMP_HTML_Utils::build_attributes_string( $this->get( 'html_tag_attributes' ) )); ?>>
4
  <head>
5
  <meta charset="utf-8">
6
  <link rel="dns-prefetch" href="https://cdn.ampproject.org">
25
  $amp_component_scripts = $sanitizer->amp_scripts;
26
  if ( $sanitizer && $amp_component_scripts) {
27
  foreach ($amp_component_scripts as $ampforwp_service => $ampforwp_js_file) { ?>
28
+ <script custom-element="<?php echo $ampforwp_service; ?>" src="<?php echo esc_url($ampforwp_js_file); ?>" async></script> <?php
29
  }
30
  }?>
31
  <style amp-custom>
86
  if( $arch_desc ) {
87
  if($paged <= '1') {?>
88
  <div class="taxonomy-description">
89
+ <?php echo $arch_desc;// amphtml content, no kses ?>
90
  </div>
91
  </div> <?php
92
  }
102
  if(!empty($cat_childs)){
103
  echo "<div class='amp-sub-archives'><ul>";
104
  foreach ($cat_childs as $cat_child ) {
105
+ echo '<li><a href="' . esc_url(get_term_link( $cat_child )) . '">' . esc_attr($cat_child->name) . '</a></li>';
106
  }
107
  echo "</ul></div>";
108
  }
131
  layout="responsive"
132
  src=<?php echo esc_url($thumb_url); ?>
133
  <?php ampforwp_thumbnail_alt(); ?>
134
+ width=<?php echo esc_attr($thumb_width); ?>
135
+ height=<?php echo esc_attr($thumb_height); ?>
136
  ></amp-img>
137
  </a>
138
  </div>
143
  <ul class="amp-wp-tags">
144
  <?php foreach((get_the_category()) as $category) {
145
  if ( true == $redux_builder_amp['ampforwp-archive-support'] ) { ?>
146
+ <li class="amp-cat-<?php echo esc_attr($category->term_id);?>"><a href="<?php echo ampforwp_url_controller( get_category_link( $category->term_id ) ); ?>" ><?php echo esc_attr($category->cat_name) ?></a></li>
147
  <?php }
148
  else { ?>
149
+ <li class="amp-cat-<?php echo esc_attr($category->term_id);?>"><?php echo esc_attr($category->cat_name) ?></li>
150
  <?php }
151
  } ?>
152
  </ul>
161
  <div class="featured_time"><?php
162
  $post_date = human_time_diff( get_the_time('U', get_the_ID() ), current_time('timestamp') ) .' '. ampforwp_translation( $redux_builder_amp['amp-translator-ago-date-text'],'ago' );
163
  $post_date = apply_filters('ampforwp_modify_post_date',$post_date);
164
+ echo esc_attr($post_date) ;?>
165
  </div>
166
  </div>
167
  <div class="cb"></div>
templates/design-manager/design-3/elements/bread-crumbs.php CHANGED
@@ -23,10 +23,10 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
23
  if ( !is_front_page() && !ampforwp_polylang_front_page() ) {
24
 
25
  // Build the breadcrums
26
- echo '<ul id="' . $breadcrums_id . '" class="' . $breadcrums_class . '">';
27
 
28
  // Home page
29
- echo '<li class="item-home"><a class="bread-link bread-home" href="' . esc_url(ampforwp_url_controller( get_home_url('', '/'), $home_non_amp )) . '" title="' . $home_title . '">' . $home_title . '</a></li>';
30
 
31
  if ( is_archive() && !is_tax() && !is_category() && !is_tag() && !is_author() ) {
32
 
@@ -39,7 +39,7 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
39
  $author_url= get_author_posts_url($userdata->ID);
40
  $author_url = trailingslashit($author_url);
41
  // Display author name
42
- echo '<li class="item-current item-current-' . $userdata->user_nicename . '"><a class="bread-current bread-current-' . $userdata->user_nicename . '" title="' . $userdata->display_name . '" href="'. esc_url(ampforwp_url_controller( $author_url, $archive_non_amp )). '">' . 'Author: ' . $userdata->display_name . '</a></li>';
43
 
44
  } else if ( is_archive() && is_tax() && !is_category() && !is_tag() ) {
45
 
@@ -52,15 +52,15 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
52
  $post_type_object = get_post_type_object($post_type);
53
  $post_type_archive = get_post_type_archive_link($post_type);
54
  if ( false != $post_type_archive){
55
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><a class="bread-cat bread-custom-post-type-' . $post_type . '" href="' .esc_url(ampforwp_url_controller( $post_type_archive, $archive_non_amp )) . '" title="' . $post_type_object->labels->name . '">' . $post_type_object->labels->name . '</a></li>';
56
  }
57
  else {
58
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><span class="bread-cat bread-custom-post-type-' . $post_type . '">' . $post_type_object->labels->name . '</span></li>';
59
  }
60
  }
61
 
62
  $custom_tax_name = get_queried_object()->name;
63
- echo '<li class="item-current item-archive"><strong class="bread-current bread-archive">' . $custom_tax_name . '</strong></li>';
64
  } else if ( is_single() ) {
65
 
66
  // If post is a custom post type
@@ -72,13 +72,13 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
72
  $post_type_object = get_post_type_object($post_type);
73
  $post_type_archive = get_post_type_archive_link($post_type);
74
  if ( false != $post_type_archive){
75
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><a class="bread-cat bread-custom-post-type-' . $post_type . '" href="' .esc_url(ampforwp_url_controller( $post_type_archive, $archive_non_amp )) . '" title="' . $post_type_object->labels->name . '">' . $post_type_object->labels->name . '</a></li>';
76
  }
77
  else {
78
- echo '<li class="item-cat item-custom-post-type-' . $post_type . '"><span class="bread-cat bread-custom-post-type-' . $post_type . '">' . $post_type_object->labels->name . '</span></li>';
79
  }
80
  }
81
- /*Breadcrumb with tags Start*/
82
  $tags_breadcrumbs = '';
83
  if($redux_builder_amp['ampforwp-bread-crumb-type'] == 'tags'){
84
  $post_tags = wp_get_post_tags($post->ID);
@@ -88,16 +88,14 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
88
  $tag_id = $post_obj->term_id;
89
  $tag_name = $post_obj->name;
90
  $tag_link = get_tag_link($tag_id);
91
- $tags_breadcrumbs .= '<li class="item-tag item-tag-' . $tag_id . ' item-tag-' . $tag_name . '"><a class="bread-tag bread-tag-' . $tag_id . ' bread-tag-' . $tag_name . '" href="' . esc_url(ampforwp_url_controller( $tag_link, $archive_non_amp )) . '" title="' . $tag_name . '">' . $tag_name . '</a></li>';
92
  }
93
  echo $tags_breadcrumbs;
94
  }
95
  }
96
-
97
  if($redux_builder_amp['ampforwp-bread-crumb-type'] == 'category'){
98
- // Get post category info
99
- $category = get_the_category();
100
-
101
  if(!empty($category)) {
102
 
103
  // Get last category post is in
@@ -113,11 +111,12 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
113
  foreach($cat_parents as $parents) {
114
  $cat_id = get_cat_ID( $parents);
115
  $cat_link = get_category_link($cat_id);
116
- $cat_display .= '<li class="item-cat item-cat-' . $cat_id . '"><a class="bread-cat bread-cat-' . $cat_id . ' bread-cat-' . $parents. '" href="'. esc_url(ampforwp_url_controller( $cat_link, $archive_non_amp )).'" title="' . $parents . '">' . $parents . '</a></li>';
117
  }
118
  }
119
  }
120
  /*Breadcrumb with tags End*/
 
121
  // If it's a custom post type within a custom taxonomy
122
  $taxonomy_exists = taxonomy_exists($custom_taxonomy);
123
  if(empty($last_category) && !empty($custom_taxonomy) && $taxonomy_exists) {
@@ -139,7 +138,7 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
139
  // Else if post is in a custom taxonomy
140
  } else if(!empty($cat_id)) {
141
 
142
- echo '<li class="item-cat item-cat-' . $cat_id . ' item-cat-' . $cat_nicename . '"><a class="bread-cat bread-cat-' . $cat_id . ' bread-cat-' . $cat_nicename . '" href="' . esc_url(ampforwp_url_controller( $cat_link, $archive_non_amp )) . '" title="' . $cat_name . '">' . $cat_name . '</a></li>';
143
  }
144
 
145
  } else if ( is_category() ) {
@@ -160,7 +159,7 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
160
  // Parent page loop
161
  if ( !isset( $parents ) ) $parents = null;
162
  foreach ( $anc as $ancestor ) {
163
- $parents .= '<li class="item-parent item-parent-' . $ancestor . '"><a class="bread-parent bread-parent-' . $ancestor . '" href="' . esc_url(ampforwp_url_controller( get_permalink( $ancestor ), $archive_non_amp )) . '" title="' . get_the_title($ancestor) . '">' . get_the_title($ancestor) . '</a></li>';
164
  }
165
 
166
  // Display parent pages
@@ -184,51 +183,51 @@ if ( isset($redux_builder_amp['ampforwp-bread-crumb']) && 1 == $redux_builder_am
184
  $get_term_name = $terms[0]->name;
185
 
186
  // Display the tag name
187
- echo '<li class="item-current item-tag-' . $get_term_id . ' item-tag-' . $get_term_slug . '"><strong class="bread-current bread-tag-' . $get_term_id . ' bread-tag-' . $get_term_slug . '">' . $get_term_name . '</strong></li>';
188
  } elseif ( is_day() ) {
189
 
190
  // Day archive
191
 
192
  // Year link
193
- echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . '</a></li>';
194
 
195
  // Month link
196
- echo '<li class="item-month item-month-' . get_the_time('m') . '"><a class="bread-month bread-month-' . get_the_time('m') . '" href="' . get_month_link( get_the_time('Y'), get_the_time('m') ) . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </a></li>';
197
 
198
 
199
  // Day display
200
- echo '<li class="item-current item-' . get_the_time('j') . '"><strong class="bread-current bread-' . get_the_time('j') . '"> ' . get_the_time('jS') . ' ' . get_the_time('M') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </strong></li>';
201
 
202
  } else if ( is_month() ) {
203
 
204
  // Month Archive
205
 
206
  // Year link
207
- echo '<li class="item-year item-year-' . get_the_time('Y') . '"><a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </a></li>';
208
 
209
  // Month display
210
- echo '<li class="item-month item-month-' . get_the_time('m') . '"><strong class="bread-month bread-month-' . get_the_time('m') . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives') . ' </strong></li>';
211
 
212
  } else if ( is_year() ) {
213
 
214
  // Display year archive
215
- echo '<li class="item-current item-current-' . get_the_time('Y') . '"><strong class="bread-current bread-current-' . get_the_time('Y') . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives'). ' </strong></li>';
216
 
217
  } else if ( get_query_var('paged') ) {
218
 
219
  // Paginated archives
220
- echo '<li class="item-current item-current-' . get_query_var('paged') . '"><strong class="bread-current bread-current-' . get_query_var('paged') . '" title="Page ' . get_query_var('paged') . '">'. ampforwp_translation($redux_builder_amp['amp-translator-page-text'], 'Page') . ' ' . get_query_var('paged') . '</strong></li>';
221
 
222
  } else if ( is_search() ) {
223
 
224
  // Search results page
225
- echo '<li class="item-current item-current-' . get_search_query() . '"><strong class="bread-current bread-current-' . get_search_query() . '" title="Search results for: ' . get_search_query() . '">
226
- ' . ampforwp_translation($redux_builder_amp['amp-translator-breadcrumbs-search-text'], 'Search results for') . ': ' . get_search_query() . '</strong></li>';
227
 
228
  } elseif ( is_404() ) {
229
 
230
  // 404 page
23
  if ( !is_front_page() && !ampforwp_polylang_front_page() ) {
24
 
25
  // Build the breadcrums
26
+ echo '<ul id="' . esc_attr($breadcrums_id) . '" class="' . esc_attr($breadcrums_class) . '">';
27
 
28
  // Home page
29
+ echo '<li class="item-home"><a class="bread-link bread-home" href="' . ampforwp_url_controller( get_home_url('', '/'), $home_non_amp ) . '" title="' . esc_attr($home_title) . '">' . esc_html($home_title) . '</a></li>';
30
 
31
  if ( is_archive() && !is_tax() && !is_category() && !is_tag() && !is_author() ) {
32
 
39
  $author_url= get_author_posts_url($userdata->ID);
40
  $author_url = trailingslashit($author_url);
41
  // Display author name
42
+ echo '<li class="item-current item-current-' . esc_attr($userdata->user_nicename) . '"><a class="bread-current bread-current-' . esc_attr($userdata->user_nicename) . '" title="' . esc_attr($userdata->display_name) . '" href="'. ampforwp_url_controller( $author_url, $archive_non_amp ). '">' . 'Author: ' . esc_html($userdata->display_name) . '</a></li>';
43
 
44
  } else if ( is_archive() && is_tax() && !is_category() && !is_tag() ) {
45
 
52
  $post_type_object = get_post_type_object($post_type);
53
  $post_type_archive = get_post_type_archive_link($post_type);
54
  if ( false != $post_type_archive){
55
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><a class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '" href="' .ampforwp_url_controller( $post_type_archive, $archive_non_amp ) . '" title="' . esc_attr($post_type_object->labels->name) . '">' . esc_html($post_type_object->labels->name) . '</a></li>';
56
  }
57
  else {
58
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type ). '"><span class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '">' . esc_html($post_type_object->labels->name) . '</span></li>';
59
  }
60
  }
61
 
62
  $custom_tax_name = get_queried_object()->name;
63
+ echo '<li class="item-current item-archive"><strong class="bread-current bread-archive">' . esc_html($custom_tax_name) . '</strong></li>';
64
  } else if ( is_single() ) {
65
 
66
  // If post is a custom post type
72
  $post_type_object = get_post_type_object($post_type);
73
  $post_type_archive = get_post_type_archive_link($post_type);
74
  if ( false != $post_type_archive){
75
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><a class="bread-cat bread-custom-post-type-' .esc_attr($post_type) . '" href="' .ampforwp_url_controller( $post_type_archive, $archive_non_amp ) . '" title="' . esc_attr($post_type_object->labels->name) . '">' . esc_html($post_type_object->labels->name) . '</a></li>';
76
  }
77
  else {
78
+ echo '<li class="item-cat item-custom-post-type-' . esc_attr($post_type) . '"><span class="bread-cat bread-custom-post-type-' . esc_attr($post_type) . '">' . esc_html($post_type_object->labels->name) . '</span></li>';
79
  }
80
  }
81
+ /*Breadcrumb with tags Start*/
82
  $tags_breadcrumbs = '';
83
  if($redux_builder_amp['ampforwp-bread-crumb-type'] == 'tags'){
84
  $post_tags = wp_get_post_tags($post->ID);
88
  $tag_id = $post_obj->term_id;
89
  $tag_name = $post_obj->name;
90
  $tag_link = get_tag_link($tag_id);
91
+ $tags_breadcrumbs .= '<li class="item-tag item-tag-' . esc_attr($tag_id) . ' item-tag-' . esc_attr($tag_name) . '"><a class="bread-tag bread-tag-' . esc_attr($tag_id) . ' bread-tag-' . esc_attr($tag_name) . '" href="' . ampforwp_url_controller( $tag_link, $archive_non_amp ) . '" title="' . esc_attr($tag_name) . '">' . esc_html($tag_name) . '</a></li>';
92
  }
93
  echo $tags_breadcrumbs;
94
  }
95
  }
 
96
  if($redux_builder_amp['ampforwp-bread-crumb-type'] == 'category'){
97
+ // Get post category info
98
+ $category = get_the_category();
 
99
  if(!empty($category)) {
100
 
101
  // Get last category post is in
111
  foreach($cat_parents as $parents) {
112
  $cat_id = get_cat_ID( $parents);
113
  $cat_link = get_category_link($cat_id);
114
+ $cat_display .= '<li class="item-cat item-cat-' . esc_attr($cat_id) . '"><a class="bread-cat bread-cat-' . esc_attr($cat_id) . ' bread-cat-' . esc_attr($parents). '" href="'. ampforwp_url_controller( $cat_link, $archive_non_amp ).'" title="' . esc_attr($parents) . '">' . esc_html($parents) . '</a></li>';
115
  }
116
  }
117
  }
118
  /*Breadcrumb with tags End*/
119
+
120
  // If it's a custom post type within a custom taxonomy
121
  $taxonomy_exists = taxonomy_exists($custom_taxonomy);
122
  if(empty($last_category) && !empty($custom_taxonomy) && $taxonomy_exists) {
138
  // Else if post is in a custom taxonomy
139
  } else if(!empty($cat_id)) {
140
 
141
+ echo '<li class="item-cat item-cat-' . esc_attr($cat_id) . ' item-cat-' . esc_attr($cat_nicename) . '"><a class="bread-cat bread-cat-' . esc_attr($cat_id) . ' bread-cat-' . esc_attr($cat_nicename) . '" href="' . ampforwp_url_controller( $cat_link, $archive_non_amp ) . '" title="' . esc_attr($cat_name) . '">' . esc_attr($cat_name) . '</a></li>';
142
  }
143
 
144
  } else if ( is_category() ) {
159
  // Parent page loop
160
  if ( !isset( $parents ) ) $parents = null;
161
  foreach ( $anc as $ancestor ) {
162
+ $parents .= '<li class="item-parent item-parent-' . esc_attr($ancestor) . '"><a class="bread-parent bread-parent-' . esc_attr($ancestor) . '" href="' . ampforwp_url_controller( get_permalink( $ancestor ), $archive_non_amp ) . '" title="' . esc_attr(get_the_title($ancestor)) . '">' . esc_html(get_the_title($ancestor)) . '</a></li>';
163
  }
164
 
165
  // Display parent pages
183
  $get_term_name = $terms[0]->name;
184
 
185
  // Display the tag name
186
+ echo '<li class="item-current item-tag-' . esc_attr($get_term_id) . ' item-tag-' . esc_attr($get_term_slug) . '"><strong class="bread-current bread-tag-' . esc_attr($get_term_id) . ' bread-tag-' . esc_attr($get_term_slug) . '">' . esc_html($get_term_name) . '</strong></li>';
187
  } elseif ( is_day() ) {
188
 
189
  // Day archive
190
 
191
  // Year link
192
+ echo '<li class="item-year item-year-' . esc_attr(get_the_time('Y')) . '"><a class="bread-year bread-year-' . esc_attr(get_the_time('Y')) . '" href="' . esc_url(get_year_link( get_the_time('Y') )) . '" title="' . esc_attr(get_the_time('Y')) . '">' . esc_attr(get_the_time('Y')) . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . '</a></li>';
193
 
194
  // Month link
195
+ echo '<li class="item-month item-month-' . esc_attr(get_the_time('m')) . '"><a class="bread-month bread-month-' . esc_attr(get_the_time('m')) . '" href="' . esc_attr(get_month_link( get_the_time('Y'), get_the_time('m') )) . '" title="' . esc_attr(get_the_time('M')) . '">' . esc_attr(get_the_time('M')) . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </a></li>';
196
 
197
 
198
  // Day display
199
+ echo '<li class="item-current item-' . esc_attr(get_the_time('j')) . '"><strong class="bread-current bread-' . esc_attr(get_the_time('j')) . '"> ' . esc_attr(get_the_time('jS')) . ' ' . esc_attr(get_the_time('M')) . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </strong></li>';
200
 
201
  } else if ( is_month() ) {
202
 
203
  // Month Archive
204
 
205
  // Year link
206
+ echo '<li class="item-year item-year-' . esc_attr(get_the_time('Y')) . '"><a class="bread-year bread-year-' . esc_attr(get_the_time('Y')) . '" href="' . esc_url(get_year_link( get_the_time('Y') )) . '" title="' . esc_attr(get_the_time('Y')) . '">' . esc_attr(get_the_time('Y')) . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </a></li>';
207
 
208
  // Month display
209
+ echo '<li class="item-month item-month-' . esc_attr(get_the_time('m')) . '"><strong class="bread-month bread-month-' . esc_attr(get_the_time('m')) . '" title="' . esc_attr(get_the_time('M')) . '">' . esc_attr(get_the_time('M')) . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')) . ' </strong></li>';
210
 
211
  } else if ( is_year() ) {
212
 
213
  // Display year archive
214
+ echo '<li class="item-current item-current-' . esc_attr(get_the_time('Y')) . '"><strong class="bread-current bread-current-' . esc_attr(get_the_time('Y')) . '" title="' . esc_attr(get_the_time('Y')) . '">' . esc_attr(get_the_time('Y')) . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-archives-text'], 'Archives')). ' </strong></li>';
215
 
216
  } else if ( get_query_var('paged') ) {
217
 
218
  // Paginated archives
219
+ echo '<li class="item-current item-current-' . esc_attr(get_query_var('paged')) . '"><strong class="bread-current bread-current-' . esc_attr(get_query_var('paged')) . '" title="Page ' . esc_attr(get_query_var('paged')) . '">'. esc_html(ampforwp_translation($redux_builder_amp['amp-translator-page-text'], 'Page')) . ' ' . esc_attr(get_query_var('paged')) . '</strong></li>';
220
 
221
  } else if ( is_search() ) {
222
 
223
  // Search results page
224
+ echo '<li class="item-current item-current-' . esc_attr(get_search_query()) . '"><strong class="bread-current bread-current-' . esc_attr(get_search_query()) . '" title="Search results for: ' . esc_attr(get_search_query()) . '">
225
+ ' . esc_html(ampforwp_translation($redux_builder_amp['amp-translator-breadcrumbs-search-text'], 'Search results for')) . ': ' . esc_attr(get_search_query()) . '</strong></li>';
226
 
227
  } elseif ( is_404() ) {
228
 
229
  // 404 page