WP Force SSL - Version 1.65

Version Description

Download this release

Release Info

Developer WebFactory
Plugin Icon 128x128 WP Force SSL
Version 1.65
Comparing to
See all releases

Code changes from version 1.60 to 1.65

css/wpfs-style.css CHANGED
@@ -90,7 +90,7 @@ body.settings_page_wp-force-ssl.swal2-height-auto {
90
  position: relative;
91
  }
92
 
93
- #ssl_cert_details .dashicons {
94
  font-size: 80px;
95
  position: absolute;
96
  top: -40px;
@@ -676,6 +676,7 @@ table.dataTable thead td {
676
  box-sizing: border-box;
677
  float: left;
678
  margin-bottom: 20px;
 
679
  }
680
 
681
  .settings_page_wpfs-settings .button {
@@ -892,7 +893,7 @@ input:checked ~ .wfssl-accordion-tab-content {
892
  height: 40px;
893
  }
894
 
895
- #wfssl-cert-email {
896
  box-sizing: border-box;
897
  width: 100%;
898
  display: block;
90
  position: relative;
91
  }
92
 
93
+ #ssl_cert_details .dashicons, #wfssl_cert_email .dashicons {
94
  font-size: 80px;
95
  position: absolute;
96
  top: -40px;
676
  box-sizing: border-box;
677
  float: left;
678
  margin-bottom: 20px;
679
+ position: relative;
680
  }
681
 
682
  .settings_page_wpfs-settings .button {
893
  height: 40px;
894
  }
895
 
896
+ #wfssl_cert_email {
897
  box-sizing: border-box;
898
  width: 100%;
899
  display: block;
inc/wp-force-ssl-status-tests.php CHANGED
@@ -45,7 +45,7 @@ class wpForceSSL_status_tests
45
  ),
46
  'fail' => array(
47
  'title' => 'Your SSL certificate is NOT valid',
48
- 'description' => 'While testing your SSL certificate the following error occurred: %1$s'
49
  ),
50
  )
51
  );
45
  ),
46
  'fail' => array(
47
  'title' => 'Your SSL certificate is NOT valid',
48
+ 'description' => 'While testing your SSL certificate the following error occurred: %1$s<br>Upgrade to <a href="#" data-pro-feature="checkssl-test-gen-cert" class="open-pro-dialog">PRO</a> to generate a free SSL certificate that automatically renews.'
49
  ),
50
  )
51
  );
readme.txt CHANGED
@@ -1,20 +1,20 @@
1
- === WP Force SSL & HTTPS Redirect ===
2
  Contributors: WebFactory
3
- Tags: ssl, force ssl, add ssl, install ssl, https, ssl certificate, ssl redirect, mixed content, hsts, lets encrypt
4
  Requires at least: 4.6
5
- Tested up to: 5.8
6
  Requires PHP: 5.2
7
- Stable Tag: 1.60
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
- Enable SSL & HTTPS redirect with 1 click! Add SSL certificate & WP Force SSL to redirect site from HTTP to HTTPS.
12
 
13
  == Description ==
14
 
15
  <a href="https://wpforcessl.com/?ref=wporg">WP Force SSL</a> helps you redirect insecure HTTP traffic to secure HTTPS and fix SSL errors **without touching any code**. Activate Force SSL and everything will be set and SSL enabled. The entire site will move to HTTPS using your SSL certificate. It works with any SSL certificate. It can be free SSL certificate from Let's Encrypt or a paid SSL certificate.
16
 
17
- How to add SSL & enable SSL? Most hosting companies support the free SSL certificate from Let's Encrypt, so login to your hosting panel and add SSL certificate. You'll see a button labeled "Add SSL Certificate" or "Add Let's Encrypt Certificate" and after that it's 1 click to have the SSL enabled on your site with WP Force SSL. If that doesn't work get <a href="https://wpforcessl.com/">WP Force SSL PRO</a> and it'll generate a free SSL certificate for your site.
18
 
19
  Access WP Force SSL settings via the main Settings menu -> WP Force SSL.
20
 
@@ -43,6 +43,7 @@ Access WP Force SSL settings via the main Settings menu -> WP Force SSL.
43
  * expect CT header
44
  * X-Frame options
45
  * show WP Force SSL menu in admin bar
 
46
 
47
  = SSL certificate testing tool =
48
  WP Force SSL comes with an SSL certificate testing tool. It tests if the SSL certificate is valid, properly installed & up-to date.
@@ -81,6 +82,10 @@ No, nothing. After activating WP Force SSL, the main option "redirect SSL" will
81
 
82
  == Changelog ==
83
 
 
 
 
 
84
  = v1.60 =
85
  - 2021/12/28
86
  - new GUI & features
1
+ === WP Force SSL & HTTPS SSL Redirect ===
2
  Contributors: WebFactory
3
+ Tags: ssl, force ssl, add ssl, install ssl, https, ssl certificate, ssl redirect, mixed content, hsts, lets encrypt, generate ssl certificate
4
  Requires at least: 4.6
5
+ Tested up to: 6.1
6
  Requires PHP: 5.2
7
+ Stable Tag: 1.65
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
+ Enable SSL & HTTPS redirect with 1 click! Add SSL certificate & WP Force SSL to redirect site from HTTP to HTTPS & fix SSL errors.
12
 
13
  == Description ==
14
 
15
  <a href="https://wpforcessl.com/?ref=wporg">WP Force SSL</a> helps you redirect insecure HTTP traffic to secure HTTPS and fix SSL errors **without touching any code**. Activate Force SSL and everything will be set and SSL enabled. The entire site will move to HTTPS using your SSL certificate. It works with any SSL certificate. It can be free SSL certificate from Let's Encrypt or a paid SSL certificate.
16
 
17
+ How to add SSL & enable SSL? Most hosting companies support the free SSL certificate from Let's Encrypt, so login to your hosting panel and add SSL certificate. You'll see a button labeled "Add SSL Certificate" or "Add Let's Encrypt Certificate" and after that it's 1 click to have the SSL enabled on your site with WP Force SSL. If that doesn't work get <a href="https://wpforcessl.com/">WP Force SSL PRO</a> and it'll generate free SSL certificate for your site. And will regenerate SSL certificate every 90 days.
18
 
19
  Access WP Force SSL settings via the main Settings menu -> WP Force SSL.
20
 
43
  * expect CT header
44
  * X-Frame options
45
  * show WP Force SSL menu in admin bar
46
+ * show WP Force SSL widget in admin dashboard
47
 
48
  = SSL certificate testing tool =
49
  WP Force SSL comes with an SSL certificate testing tool. It tests if the SSL certificate is valid, properly installed & up-to date.
82
 
83
  == Changelog ==
84
 
85
+ = v1.65 =
86
+ - 2022/01/12
87
+ - added admin Dashboard widget
88
+
89
  = v1.60 =
90
  - 2021/12/28
91
  - new GUI & features
wp-force-ssl.php CHANGED
@@ -5,11 +5,11 @@
5
  Description: Redirect all traffic from HTTP to HTTPS and fix other SSL issues.
6
  Author: WebFactory Ltd
7
  Author URI: https://www.webfactoryltd.com/
8
- Version: 1.60
9
  Text Domain: wp-force-ssl
10
  Requires at least: 4.6
11
  Requires PHP: 5.2
12
- Tested up to: 5.8
13
 
14
  Copyright 2019 - 2022 WebFactory Ltd (email: support@webfactoryltd.com)
15
 
@@ -75,7 +75,8 @@ class wpForceSSL
75
  'wpfs_ssl' => 'yes',
76
  'wpfs_hsts' => 'no',
77
  'wpfs_expect_ct' => 'no',
78
- 'wpfs_adminbar_menu' => 'no'
 
79
  );
80
  $this->options = array_merge($default, $this->options);
81
 
@@ -99,6 +100,7 @@ class wpForceSSL
99
  add_filter('admin_footer_text', array($this, 'admin_footer_text'));
100
  add_action('admin_print_scripts', array($this, 'remove_admin_notices'));
101
  add_action('admin_enqueue_scripts', array($this, 'admin_scripts'));
 
102
 
103
  add_filter('plugin_action_links_' . plugin_basename(__FILE__), array($this, 'plugin_action_links'));
104
  add_filter('plugin_row_meta', array($this, 'plugin_meta_links'), 10, 2);
@@ -122,11 +124,14 @@ class wpForceSSL
122
  public function get_meta()
123
  {
124
  $meta = get_option(WPFSSL_META_KEY, array());
 
 
 
 
 
125
 
126
- if (!is_array($meta) || empty($meta)) {
127
- $meta['first_version'] = $this->get_plugin_version();
128
- $meta['first_install'] = time();
129
- $meta['hide_welcome_pointer'] = false;
130
  update_option(WPFSSL_META_KEY, $meta);
131
  }
132
 
@@ -236,7 +241,7 @@ class wpForceSSL
236
  $meta = $this->get_meta();
237
  $pointers = array();
238
 
239
- if (empty($meta['hide_welcome_pointer']) && !$this->is_plugin_page() && current_user_can('administrator')) {
240
  $pointers['_nonce_dismiss_pointer'] = wp_create_nonce('wpfs_dismiss_notice');
241
  $pointers['welcome'] = array('target' => '#menu-settings', 'edge' => 'left', 'align' => 'right', 'content' => 'Thank you for installing the <b style="font-weight: 800;">WP Force SSL</b> plugin!<br>Open <a href="' . admin_url('options-general.php?page=wpfs-settings') . '">Settings - WP Force SSL</a> to access SSL settings.');
242
 
@@ -356,7 +361,7 @@ class wpForceSSL
356
  $wp_admin_bar->add_node(array(
357
  'id' => 'wfssl-ab',
358
  'title' => $title,
359
- 'href' => '#',
360
  'parent' => '',
361
  ));
362
 
@@ -390,6 +395,53 @@ class wpForceSSL
390
  } // admin_bar
391
 
392
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
393
  // fix for aggressive plugins that include their CSS on all pages
394
  function cleanup_enqueues()
395
  {
@@ -758,6 +810,13 @@ class wpForceSSL
758
  wpForceSSL_Utility::create_toogle_switch('wpfs_adminbar_menu', array('saved_value' => ($this->options['wpfs_adminbar_menu'] == 'yes' ? true : false)));
759
  echo '</td></tr>';
760
 
 
 
 
 
 
 
 
761
  echo '</table></form>';
762
 
763
  echo '<p><a href="#" class="button button-primary save-ssl-options">' . __('Save Settings', 'wp-force-ssl') . '</a></p>';
@@ -788,7 +847,8 @@ class wpForceSSL
788
  echo '<div class="clear"></div>';
789
 
790
  echo '<h2>Real-Time SSL &amp; Site Monitoring<span class="pro-feature">PRO</span></h2>';
791
- echo '<div id="wfssl-cert-email" class="wfssl-box">';
 
792
  echo '<p>Real-time site &amp; SSL certificate monitoring is a <a href="#" data-pro-feature="ssl-monitor-text" class="open-pro-dialog">PRO</a> feature powered by our SaaS that will help you and your clients sleep better. It monitors over 20 common errors related to SSL that can happen at any time. Forgot to renew your certificate? No problem, you\'ll get notified on time. Forgot to change certificate after switching the domain or server? Again, not a problem. You\'ll get notified.</p>';
793
  echo '<label for="ssl-monitor-toggle">Enable Monitoring</label> &nbsp; ';
794
  wpForceSSL_Utility::create_toogle_switch('ssl-monitor-toggle', array('class' => 'open-pro-dialog', 'saved_value' => false));
@@ -797,6 +857,13 @@ class wpForceSSL
797
  echo '<div class="button button-primary open-pro-dialog" data-pro-feature="ssl-monitor-save">Save &amp; Enable Monitoring</div>';
798
  echo '</div>';
799
  echo '</div>';
 
 
 
 
 
 
 
800
  } // tab_ssl
801
 
802
 
@@ -891,12 +958,14 @@ class wpForceSSL
891
  $wpfs_hsts = isset($_POST['wpfs_hsts']) ? 'yes' : 'no';
892
  $wpfs_expect_ct = isset($_POST['wpfs_expect_ct']) ? 'yes' : 'no';
893
  $wpfs_adminbar_menu = isset($_POST['wpfs_adminbar_menu']) ? 'yes' : 'no';
 
894
 
895
  $wpfs_settings = array(
896
  'wpfs_ssl' => $wpfs_ssl,
897
  'wpfs_hsts' => $wpfs_hsts,
898
  'wpfs_expect_ct' => $wpfs_expect_ct,
899
- 'wpfs_adminbar_menu' => $wpfs_adminbar_menu
 
900
  );
901
  update_option(WPFSSL_OPTIONS_KEY, $wpfs_settings);
902
 
@@ -1048,7 +1117,7 @@ class wpForceSSL
1048
  $out .= '<td><a class="button button-buy" data-href-org="https://wpforcessl.com/buy/?product=personal-launch&ref=pricing-table" href="https://wpforcessl.com/buy/?product=personal-launch&ref=pricing-table" target="_blank">Lifetime License<br>$59 -&gt; BUY NOW</a>
1049
  <br>or <a class="button-buy" data-href-org="https://wpforcessl.com/buy/?product=personal-monthly&ref=pricing-table" href="https://wpforcessl.com/buy/?product=personal-monthly&ref=pricing-table" target="_blank">only $6.99 <small>/month</small></a></td>';
1050
  $out .= '<td><a class="button button-buy" data-href-org="https://wpforcessl.com/buy/?product=team-launch&ref=pricing-table" href="https://wpforcessl.com/buy/?product=team-launch&ref=pricing-table" target="_blank">Lifetime License<br>$69 -&gt; BUY NOW</a></td>';
1051
- $out .= '<td><a class="button button-buy" data-href-org="https://wpforcessl.com/buy/?product=agency-launch&ref=pricing-table" href="https://wpforcessl.com/buy/?product=agency-launch&ref=pricing-table" target="_blank">Lifetime License<br>$99 -&gt; BUY NOW</a></td>';
1052
  $out .= '</tr>';
1053
 
1054
  $out .= '</table>';
5
  Description: Redirect all traffic from HTTP to HTTPS and fix other SSL issues.
6
  Author: WebFactory Ltd
7
  Author URI: https://www.webfactoryltd.com/
8
+ Version: 1.65
9
  Text Domain: wp-force-ssl
10
  Requires at least: 4.6
11
  Requires PHP: 5.2
12
+ Tested up to: 6.0
13
 
14
  Copyright 2019 - 2022 WebFactory Ltd (email: support@webfactoryltd.com)
15
 
75
  'wpfs_ssl' => 'yes',
76
  'wpfs_hsts' => 'no',
77
  'wpfs_expect_ct' => 'no',
78
+ 'wpfs_adminbar_menu' => 'yes',
79
+ 'wpfs_dashboard_widget' => 'yes'
80
  );
81
  $this->options = array_merge($default, $this->options);
82
 
100
  add_filter('admin_footer_text', array($this, 'admin_footer_text'));
101
  add_action('admin_print_scripts', array($this, 'remove_admin_notices'));
102
  add_action('admin_enqueue_scripts', array($this, 'admin_scripts'));
103
+ add_action('wp_dashboard_setup', array($this, 'add_widget'));
104
 
105
  add_filter('plugin_action_links_' . plugin_basename(__FILE__), array($this, 'plugin_action_links'));
106
  add_filter('plugin_row_meta', array($this, 'plugin_meta_links'), 10, 2);
124
  public function get_meta()
125
  {
126
  $meta = get_option(WPFSSL_META_KEY, array());
127
+ $default = array(
128
+ 'first_version' => $this->get_plugin_version(),
129
+ 'first_install' => time(),
130
+ 'hide_welcome_pointer' => false
131
+ );
132
 
133
+ $meta = array_merge($default, $meta);
134
+ if (sizeof($default) != sizeof($meta)) {
 
 
135
  update_option(WPFSSL_META_KEY, $meta);
136
  }
137
 
241
  $meta = $this->get_meta();
242
  $pointers = array();
243
 
244
+ if (!$meta['hide_welcome_pointer'] && !$this->is_plugin_page() && current_user_can('administrator')) {
245
  $pointers['_nonce_dismiss_pointer'] = wp_create_nonce('wpfs_dismiss_notice');
246
  $pointers['welcome'] = array('target' => '#menu-settings', 'edge' => 'left', 'align' => 'right', 'content' => 'Thank you for installing the <b style="font-weight: 800;">WP Force SSL</b> plugin!<br>Open <a href="' . admin_url('options-general.php?page=wpfs-settings') . '">Settings - WP Force SSL</a> to access SSL settings.');
247
 
361
  $wp_admin_bar->add_node(array(
362
  'id' => 'wfssl-ab',
363
  'title' => $title,
364
+ 'href' => admin_url('options-general.php?page=wpfs-settings'),
365
  'parent' => '',
366
  ));
367
 
395
  } // admin_bar
396
 
397
 
398
+ // add widget to dashboard
399
+ function add_widget()
400
+ {
401
+ if (current_user_can('administrator') && $this->options['wpfs_dashboard_widget'] == 'yes') {
402
+ add_meta_box('wpfssl_status', 'WP Force SSL Status', array($this, 'widget_content'), 'dashboard', 'side', 'high');
403
+ }
404
+ } // add_widget
405
+
406
+
407
+ // render dashboard widget
408
+ function widget_content()
409
+ {
410
+ global $wp_force_ssl_tests;
411
+ $widget_html = '';
412
+
413
+ $tests = $wp_force_ssl_tests->get_tests_results(false);
414
+ if (is_wp_error($tests)) {
415
+ wpForceSSL_Utility::wp_kses_wf('<p>Unable to get test results. Sorry :(<br>Open <a href="' . admin_url('options-general.php?page=wpfs-settings#tab_status') . '">WP Force SSL</a> plugin to contact support.</p>');
416
+ return;
417
+ }
418
+
419
+ $widget_html .= '<style>';
420
+ $widget_html .= '#wpfssl_status .inside { padding: 0; margin: 0; }';
421
+ $widget_html .= '#wpfssl_status table td { max-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-top: 1px solid #f0f0f1; }';
422
+ $widget_html .= '#wpfssl_status table { border: none; }';
423
+ $widget_html .= '#wpfssl_status td .wpfssl-show-hover { color: #dcdcde; display: none; }';
424
+ $widget_html .= '#wpfssl_status td:hover .wpfssl-show-hover { display: inline; }';
425
+ $widget_html .= '#wpfssl_status p { padding: 0 12px 12px 12px; }';
426
+ $widget_html .= '#wpfssl_status .wpfssl-status-fail { border-left: 5px solid #d63638; }';
427
+ $widget_html .= '#wpfssl_status .wpfssl-status-warning { border-left: 5px solid #ffaa39; }';
428
+ $widget_html .= '#wpfssl_status .wpfssl-status-pass { border-left: 5px solid #42972d; }';
429
+ $widget_html .= '</style>';
430
+
431
+ $widget_html .= '<table class="striped widefat">';
432
+ for ($i = 0; $i < 7; $i++) {
433
+ $widget_html .= '<tr>';
434
+ $widget_html .= '<td class="wpfssl-status-' . $tests[$i]['status'] . '">' . $tests[$i]['title'] . '<span class="wpfssl-show-hover"> | <a href="' . admin_url('options-general.php?page=wpfs-settings#tab_status') . '">View Details</a></span></td>';
435
+ $widget_html .= '</tr>';
436
+ } // for
437
+ $widget_html .= '</table>';
438
+
439
+ $widget_html .= '<p>View all <b>' . sizeof($tests) . ' tests</b>, detailed test explanations, and how to fix problems in the <a href="' . admin_url('options-general.php?page=wpfs-settings#tab_status') . '">WP Force SSL</a> plugin settings.</p>';
440
+
441
+ wpForceSSL_Utility::wp_kses_wf($widget_html);
442
+ } // widget_content
443
+
444
+
445
  // fix for aggressive plugins that include their CSS on all pages
446
  function cleanup_enqueues()
447
  {
810
  wpForceSSL_Utility::create_toogle_switch('wpfs_adminbar_menu', array('saved_value' => ($this->options['wpfs_adminbar_menu'] == 'yes' ? true : false)));
811
  echo '</td></tr>';
812
 
813
+ echo '<tr><td>
814
+ <label for="wpfs_dashboard_widget">Show WP Force SSL widget to administrators in admin dashboard</label>
815
+ <small>When enabled a widget with status details will be shown to admins in the admin dashboard.</small>
816
+ </td><td>';
817
+ wpForceSSL_Utility::create_toogle_switch('wpfs_dashboard_widget', array('saved_value' => ($this->options['wpfs_dashboard_widget'] == 'yes' ? true : false)));
818
+ echo '</td></tr>';
819
+
820
  echo '</table></form>';
821
 
822
  echo '<p><a href="#" class="button button-primary save-ssl-options">' . __('Save Settings', 'wp-force-ssl') . '</a></p>';
847
  echo '<div class="clear"></div>';
848
 
849
  echo '<h2>Real-Time SSL &amp; Site Monitoring<span class="pro-feature">PRO</span></h2>';
850
+ echo '<div id="wfssl_cert_email" class="wfssl-box">';
851
+ echo '<span class="wfssl-red dashicons dashicons-dismiss"></span>';
852
  echo '<p>Real-time site &amp; SSL certificate monitoring is a <a href="#" data-pro-feature="ssl-monitor-text" class="open-pro-dialog">PRO</a> feature powered by our SaaS that will help you and your clients sleep better. It monitors over 20 common errors related to SSL that can happen at any time. Forgot to renew your certificate? No problem, you\'ll get notified on time. Forgot to change certificate after switching the domain or server? Again, not a problem. You\'ll get notified.</p>';
853
  echo '<label for="ssl-monitor-toggle">Enable Monitoring</label> &nbsp; ';
854
  wpForceSSL_Utility::create_toogle_switch('ssl-monitor-toggle', array('class' => 'open-pro-dialog', 'saved_value' => false));
857
  echo '<div class="button button-primary open-pro-dialog" data-pro-feature="ssl-monitor-save">Save &amp; Enable Monitoring</div>';
858
  echo '</div>';
859
  echo '</div>';
860
+
861
+ echo '<div class="clear"></div>';
862
+ echo '<h2>Generate Free SSL Certificate<span class="pro-feature">PRO</span></h2>';
863
+ echo '<div id="wfssl_cert_generate" class="wfssl-box">';
864
+ echo '<p>Use this <a href="#" data-pro-feature="generate-ssl-cert-text" class="open-pro-dialog">PRO</a> tool to generate a free Let\'s Encrypt certificate. The certificate will be renewed automatically as long as WP Force SSL is active on the website. All you need is an email address, no other personal information or payment is necessary.</p>';
865
+ echo '<div class="button button-primary open-pro-dialog" data-pro-feature="generate-ssl-cert">Generate Free SSL Certificate</div>';
866
+ echo '</div>';
867
  } // tab_ssl
868
 
869
 
958
  $wpfs_hsts = isset($_POST['wpfs_hsts']) ? 'yes' : 'no';
959
  $wpfs_expect_ct = isset($_POST['wpfs_expect_ct']) ? 'yes' : 'no';
960
  $wpfs_adminbar_menu = isset($_POST['wpfs_adminbar_menu']) ? 'yes' : 'no';
961
+ $wpfs_dashboard_widget = isset($_POST['wpfs_dashboard_widget']) ? 'yes' : 'no';
962
 
963
  $wpfs_settings = array(
964
  'wpfs_ssl' => $wpfs_ssl,
965
  'wpfs_hsts' => $wpfs_hsts,
966
  'wpfs_expect_ct' => $wpfs_expect_ct,
967
+ 'wpfs_adminbar_menu' => $wpfs_adminbar_menu,
968
+ 'wpfs_dashboard_widget' => $wpfs_dashboard_widget
969
  );
970
  update_option(WPFSSL_OPTIONS_KEY, $wpfs_settings);
971
 
1117
  $out .= '<td><a class="button button-buy" data-href-org="https://wpforcessl.com/buy/?product=personal-launch&ref=pricing-table" href="https://wpforcessl.com/buy/?product=personal-launch&ref=pricing-table" target="_blank">Lifetime License<br>$59 -&gt; BUY NOW</a>
1118
  <br>or <a class="button-buy" data-href-org="https://wpforcessl.com/buy/?product=personal-monthly&ref=pricing-table" href="https://wpforcessl.com/buy/?product=personal-monthly&ref=pricing-table" target="_blank">only $6.99 <small>/month</small></a></td>';
1119
  $out .= '<td><a class="button button-buy" data-href-org="https://wpforcessl.com/buy/?product=team-launch&ref=pricing-table" href="https://wpforcessl.com/buy/?product=team-launch&ref=pricing-table" target="_blank">Lifetime License<br>$69 -&gt; BUY NOW</a></td>';
1120
+ $out .= '<td><a class="button button-buy" data-href-org="https://wpforcessl.com/buy/?product=agency-launch&ref=pricing-table" href="https://wpforcessl.com/buy/?product=agency-launch&ref=pricing-table" target="_blank">Lifetime License<br>$119 -&gt; BUY NOW</a></td>';
1121
  $out .= '</tr>';
1122
 
1123
  $out .= '</table>';