Merged in release/release-1.09 (pull request #10)

Release/release 1.09

* Install missing plugins 
* rs set to 1

* rebase pantheon for aws

* rebase pantheon for aws

* prod config change

* prod config change

* fix campaing issue

* revert


Approved-by: Jay Sharma
This commit is contained in:
Rachit Bhargava
2023-12-27 20:55:58 +00:00
committed by Jay Sharma
parent 779393381f
commit 22f10a9edd
2154 changed files with 22313 additions and 209875 deletions

File diff suppressed because one or more lines are too long

View File

@@ -150,7 +150,8 @@ WPMailSMTP.Admin.About = WPMailSMTP.Admin.About || ( function( document, window,
if (
res.hasOwnProperty( 'data' ) &&
res.data.hasOwnProperty( 0 ) &&
res.data[ 0 ].hasOwnProperty( 'code' )
res.data[ 0 ].hasOwnProperty( 'code' ) &&
res.data[ 0 ].code === 'download_failed'
) {
// Specific server-returned error.

View File

@@ -1 +1 @@
"use strict";var WPMailSMTP=window.WPMailSMTP||{};WPMailSMTP.Admin=WPMailSMTP.Admin||{},WPMailSMTP.Admin.About=WPMailSMTP.Admin.About||function(a,t,d){var i={init:function(){d(i.ready)},ready:function(){i.pageHolder=d(".wp-mail-smtp-page-about"),i.bindActions(),d(".wp-mail-smtp-page").trigger("WPMailSMTP.Admin.About.ready")},bindActions:function(){jQuery(".wp-mail-smtp-admin-about-plugins .plugin-item .details").matchHeight(),d(a).on("click",".wp-mail-smtp-admin-about-plugins .plugin-item .action-button .button",function(a){a.preventDefault();var i=d(this);if(i.hasClass("disabled")||i.hasClass("loading"))return!1;var s,n,l,e,o,u=i.closest(".plugin-item"),a=i.attr("data-plugin");if(i.addClass("loading disabled"),i.text(wp_mail_smtp_about.plugin_processing),i.hasClass("status-inactive"))s="about_plugin_activate",n="status-active button button-secondary disabled",l=wp_mail_smtp_about.plugin_active,e=wp_mail_smtp_about.plugin_activated;else{if(!i.hasClass("status-download"))return i.hasClass("status-open")?(t.open(i.attr("href"),"_blank").focus(),i.removeClass("loading disabled"),void i.text(wp_mail_smtp_about.plugin_visit)):void 0;s="about_plugin_install",n="status-active button disabled",l=wp_mail_smtp_about.plugin_active,e=wp_mail_smtp_about.plugin_activated}a={action:"wp_mail_smtp_ajax",task:s,nonce:wp_mail_smtp_about.nonce,plugin:a};d.post(wp_mail_smtp_about.ajax_url,a,function(a){var t;a.success?(t=!0,"about_plugin_install"===s?(i.attr("data-plugin",a.data.basename),o=a.data.msg,a.data.is_activated||(n="button",l=wp_mail_smtp_about.plugin_inactive,e=wp_mail_smtp_about.plugin_activate)):o=a.data,u.find(".actions").append('<div class="msg success">'+o+"</div>"),u.find("span.status-label").removeClass("status-active status-inactive status-download").addClass(n).removeClass("button button-primary button-secondary disabled").text(l),i.removeClass("status-active status-inactive status-download").removeClass("button button-primary button-secondary disabled").addClass(n).html(e)):(t=!1,a.hasOwnProperty("data")&&a.data.hasOwnProperty(0)&&a.data[0].hasOwnProperty("code")?u.find(".actions").append('<div class="msg error">'+wp_mail_smtp_about.plugin_install_error+"</div>"):u.find(".actions").append('<div class="msg error">'+a.data+"</div>"),i.html(wp_mail_smtp_about.plugin_download_btn)),t||i.removeClass("disabled"),i.removeClass("loading"),setTimeout(function(){d(".plugin-item .msg").remove()},3e3)}).fail(function(a){console.log(a.responseText)})})}};return i}(document,window,jQuery),WPMailSMTP.Admin.About.init();
"use strict";var WPMailSMTP=window.WPMailSMTP||{};WPMailSMTP.Admin=WPMailSMTP.Admin||{},WPMailSMTP.Admin.About=WPMailSMTP.Admin.About||function(a,t,u){var i={init:function(){u(i.ready)},ready:function(){i.pageHolder=u(".wp-mail-smtp-page-about"),i.bindActions(),u(".wp-mail-smtp-page").trigger("WPMailSMTP.Admin.About.ready")},bindActions:function(){jQuery(".wp-mail-smtp-admin-about-plugins .plugin-item .details").matchHeight(),u(a).on("click",".wp-mail-smtp-admin-about-plugins .plugin-item .action-button .button",function(a){a.preventDefault();var i=u(this);if(i.hasClass("disabled")||i.hasClass("loading"))return!1;var s,n,l,e,o,d=i.closest(".plugin-item"),a=i.attr("data-plugin");if(i.addClass("loading disabled"),i.text(wp_mail_smtp_about.plugin_processing),i.hasClass("status-inactive"))s="about_plugin_activate",n="status-active button button-secondary disabled",l=wp_mail_smtp_about.plugin_active,e=wp_mail_smtp_about.plugin_activated;else{if(!i.hasClass("status-download"))return i.hasClass("status-open")?(t.open(i.attr("href"),"_blank").focus(),i.removeClass("loading disabled"),void i.text(wp_mail_smtp_about.plugin_visit)):void 0;s="about_plugin_install",n="status-active button disabled",l=wp_mail_smtp_about.plugin_active,e=wp_mail_smtp_about.plugin_activated}a={action:"wp_mail_smtp_ajax",task:s,nonce:wp_mail_smtp_about.nonce,plugin:a};u.post(wp_mail_smtp_about.ajax_url,a,function(a){var t;a.success?(t=!0,"about_plugin_install"===s?(i.attr("data-plugin",a.data.basename),o=a.data.msg,a.data.is_activated||(n="button",l=wp_mail_smtp_about.plugin_inactive,e=wp_mail_smtp_about.plugin_activate)):o=a.data,d.find(".actions").append('<div class="msg success">'+o+"</div>"),d.find("span.status-label").removeClass("status-active status-inactive status-download").addClass(n).removeClass("button button-primary button-secondary disabled").text(l),i.removeClass("status-active status-inactive status-download").removeClass("button button-primary button-secondary disabled").addClass(n).html(e)):(t=!1,a.hasOwnProperty("data")&&a.data.hasOwnProperty(0)&&a.data[0].hasOwnProperty("code")&&"download_failed"===a.data[0].code?d.find(".actions").append('<div class="msg error">'+wp_mail_smtp_about.plugin_install_error+"</div>"):d.find(".actions").append('<div class="msg error">'+a.data+"</div>"),i.html(wp_mail_smtp_about.plugin_download_btn)),t||i.removeClass("disabled"),i.removeClass("loading"),setTimeout(function(){u(".plugin-item .msg").remove()},3e3)}).fail(function(a){console.log(a.responseText)})})}};return i}(document,window,jQuery),WPMailSMTP.Admin.About.init();

View File

@@ -272,12 +272,6 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || ( function( document, w
},
} );
} );
$( '#wp-mail-smtp-setting-gmail-one_click_setup_enabled-lite' ).on( 'click', function( e ) {
e.preventDefault();
app.education.gmailOneClickSetupUpgrade();
} );
},
education: {
@@ -285,33 +279,15 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || ( function( document, w
var mailerName = $input.data( 'title' ).trim();
app.education.upgradeModal(
wp_mail_smtp.education.upgrade_title.replace( /%name%/g, mailerName ),
wp_mail_smtp.education.upgrade_content.replace( /%name%/g, mailerName ),
$input.val()
);
},
gmailOneClickSetupUpgrade: function() {
app.education.upgradeModal(
wp_mail_smtp.education.gmail.one_click_setup_upgrade_title,
wp_mail_smtp.education.gmail.one_click_setup_upgrade_content,
'gmail-one-click-setup'
);
},
upgradeModal: function( title, content, upgradeUrlUtmContent ) {
$.alert( {
backgroundDismiss: true,
escapeKey: true,
animationBounce: 1,
type: 'blue',
closeIcon: true,
title: title,
title: wp_mail_smtp.education.upgrade_title.replace( /%name%/g, mailerName ),
icon: '"></i>' + wp_mail_smtp.education.upgrade_icon_lock + '<i class="',
content: content,
content: wp_mail_smtp.education.upgrade_content.replace( /%name%/g, mailerName ),
boxWidth: '550px',
onOpenBefore: function() {
this.$btnc.after( '<div class="discount-note">' + wp_mail_smtp.education.upgrade_bonus + wp_mail_smtp.education.upgrade_doc + '</div>' );
@@ -324,7 +300,7 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || ( function( document, w
keys: [ 'enter' ],
action: function() {
var appendChar = /(\?)/.test( wp_mail_smtp.education.upgrade_url ) ? '&' : '?',
upgradeURL = wp_mail_smtp.education.upgrade_url + appendChar + 'utm_content=' + encodeURIComponent( upgradeUrlUtmContent );
upgradeURL = wp_mail_smtp.education.upgrade_url + appendChar + 'utm_content=' + encodeURIComponent( $input.val() );
window.open( upgradeURL, '_blank' );
}
@@ -386,7 +362,7 @@ WPMailSMTP.Admin.Settings = WPMailSMTP.Admin.Settings || ( function( document, w
} );
// Set settings changed attribute, if any input was changed.
$( ':input:not( #wp-mail-smtp-setting-license-key, .wp-mail-smtp-not-form-input, #wp-mail-smtp-setting-gmail-one_click_setup_enabled )', $settingPages ).on( 'change', function() {
$( ':input:not( #wp-mail-smtp-setting-license-key, .wp-mail-smtp-not-form-input )', $settingPages ).on( 'change', function() {
app.pluginSettingsChanged = true;
} );

File diff suppressed because one or more lines are too long

View File

@@ -55,11 +55,11 @@ $generated_i18n_strings = array(
// Reference: src/modules/settings/store/actions.js:11
__( 'It looks like we can\'t load existing settings.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/api/index.js:265
// Reference: src/modules/settings/api/index.js:232
// Reference: src/modules/settings/store/actions.js:111
__( 'It looks like we can\'t load oAuth connected data.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/store/actions.js:132
// Reference: src/modules/settings/store/actions.js:123
__( 'It looks like we can\'t remove oAuth connection.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/store/actions.js:31
@@ -76,12 +76,12 @@ $generated_i18n_strings = array(
__( 'It looks like we can\'t send the feedback.', 'wp-mail-smtp' ),
// Reference: src/modules/plugins/api/index.js:69
// Reference: src/modules/settings/api/index.js:267
// Reference: src/modules/settings/api/index.js:234
// Reference: src/modules/setup-wizard/api/index.js:39
/* Translators: Error status and error text. */
__( '%1$s, %2$s', 'wp-mail-smtp' ),
// Reference: src/modules/settings/api/index.js:271
// Reference: src/modules/settings/api/index.js:238
// Reference: src/modules/setup-wizard/api/index.js:43
__( 'You appear to be offline.', 'wp-mail-smtp' ),
@@ -100,7 +100,7 @@ $generated_i18n_strings = array(
// Reference: src/modules/settings/api/index.js:172
__( 'It looks like we can\'t load authentication details.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/api/index.js:235
// Reference: src/modules/settings/api/index.js:202
__( 'It looks like we can\'t remove OAuth connection.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/api/index.js:21
@@ -155,7 +155,6 @@ $generated_i18n_strings = array(
__( 'Save and Continue', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/WizardStepChooseMailer.vue:17
// Reference: src/modules/setup-wizard/components/steps/WizardStepLicense.vue:18
__( 'Previous Step', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/WizardStepPluginFeatures.vue:214
@@ -221,7 +220,7 @@ $generated_i18n_strings = array(
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Mailgun.vue:15
__( 'Domain Name', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Zoho.vue:16
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Mailgun.vue:16
__( 'Region', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Mailgun.vue:18
@@ -236,47 +235,43 @@ $generated_i18n_strings = array(
/* Translators: Link to the Mailgun documentation. */
__( 'Define which endpoint you want to use for sending messages. If you are operating under EU laws, you may be required to use EU region. %1$sMore information%2$s on Mailgun.com.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendinblue.vue:19
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Zoho.vue:22
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendlayer.vue:16
__( 'From Name', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendinblue.vue:20
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Zoho.vue:23
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendlayer.vue:17
__( 'Force From Name', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendinblue.vue:21
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendlayer.vue:18
__( 'From Email', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendinblue.vue:22
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendlayer.vue:19
__( 'Force From Email', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendinblue.vue:23
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Zoho.vue:24
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendlayer.vue:20
__( 'If enabled, the From Name setting above will be used for all emails, ignoring values set by other plugins.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendinblue.vue:24
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendlayer.vue:21
__( 'If enabled, the From Email setting above will be used for all emails, ignoring values set by other plugins.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendinblue.vue:25
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Zoho.vue:25
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendlayer.vue:22
__( 'The name that emails are sent from.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendinblue.vue:26
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendlayer.vue:23
__( 'The email address that emails are sent from.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Mailgun.vue:31
__( 'Read how to set up Mailgun', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/SparkPost.vue:31
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Mailgun.vue:36
__( 'US', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/SparkPost.vue:35
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Mailgun.vue:40
__( 'EU', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/Steps.vue:12
__( 'Close and exit the Setup Wizard', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendinblue.vue:13
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendlayer.vue:13
__( 'API Key', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Sendinblue.vue:14
@@ -310,9 +305,7 @@ $generated_i18n_strings = array(
// Reference: src/modules/setup-wizard/components/steps/WizardStepConfigureMailer.vue:14
__( 'Below, we\'ll show you all of the settings required to set up this mailer.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsInputRadio.vue:33
// Reference: src/modules/settings/components/input/SettingsInputSwitch.vue:39
// Reference: src/modules/settings/components/input/SettingsInputText.vue:69
// Reference: src/modules/settings/components/input/SettingsInputLongCheckbox.vue:20
__( 'This setting is already configured with the WP Mail SMTP constant. To change it, please edit or remove the <code></code> constant in your <code>wp-config.php</code> file.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsInputText.vue:36
@@ -342,10 +335,10 @@ $generated_i18n_strings = array(
// Reference: src/modules/setup-wizard/components/steps/WizardStepConfigurationFailure.vue:13
__( 'Start Troubleshooting', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/WizardStepConfigurationSuccess.vue:23
// Reference: src/modules/setup-wizard/components/steps/WizardStepConfigurationFailure.vue:14
__( 'Send us Feedback', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/WizardStepConfigurationSuccess.vue:24
// Reference: src/modules/setup-wizard/components/steps/WizardStepConfigurationFailure.vue:15
__( 'Finish Setup', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/WizardStepImport.vue:12
@@ -446,16 +439,16 @@ $generated_i18n_strings = array(
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Zoho.vue:17
__( 'The data center location used by your Zoho account.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Zoho.vue:18
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:15
__( 'Client ID', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Zoho.vue:19
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:16
__( 'Client Secret', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Zoho.vue:20
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Outlook.vue:17
__( 'Redirect URI', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Zoho.vue:21
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Outlook.vue:18
__( 'Authorization', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Zoho.vue:26
@@ -627,10 +620,10 @@ $generated_i18n_strings = array(
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/AmazonSES.vue:30
__( 'Amazon SES requires an SSL certificate, and so is not currently compatible with your site. Please contact your host to request a SSL certificate, or check out ', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/AmazonSES.vue:31
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Outlook.vue:21
__( 'WPBeginner\'s tutorial on how to set up SSL', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/AmazonSES.vue:32
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Outlook.vue:22
__( 'If you\'d prefer not to set up SSL, or need an SMTP solution in the meantime, please go back and select a different mailer option.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/WizardStepChooseMailer.vue:13
@@ -730,13 +723,13 @@ $generated_i18n_strings = array(
// Reference: src/modules/setup-wizard/components/steps/WizardStepLicense.vue:86
__( 'Verification Error!', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:19
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:17
__( 'Authorized Redirect URI', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:29
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:24
__( 'Select which email address you would like to send your emails from.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:29
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:25
__( 'Read how to set up the Gmail mailer', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/SparkPost.vue:17
@@ -769,58 +762,58 @@ $generated_i18n_strings = array(
// Reference: src/modules/settings/components/input/SettingsInputNumber.vue:39
__( 'Value has to be a round number', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:114
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:104
__( 'There was an error while processing the authentication request. Please try again.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:120
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:110
__( 'There was an error while processing the authentication request. Please recheck your Client ID and Client Secret and try again.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:128
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:115
__( 'There was an error while processing the authentication request. The nonce is invalid. Please try again.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:132
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:119
__( 'There was an error while processing the authentication request. The authorization code is missing. Please try again.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:135
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:122
__( 'There was an error while processing the authentication request. Please recheck your Region, Client ID and Client Secret and try again.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:138
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:125
__( 'You have successfully linked the current site with your Google API project. Now you can start sending emails through Gmail.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:144
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:128
__( 'You have successfully linked the current site with your Microsoft API project. Now you can start sending emails through Outlook.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:147
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:131
__( 'You have successfully linked the current site with your Zoho Mail API project. Now you can start sending emails through Zoho Mail.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:153
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:137
__( 'Successful Authorization', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:153
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:137
__( 'Authorization Error!', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:23
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:21
/* Translators: name of the oAuth provider (Google, Microsoft, ...). */
__( 'Connect to %s', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:25
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:22
__( 'Before continuing, you\'ll need to allow this plugin to send emails using your %s account.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:26
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:23
__( 'Remove OAuth Connection', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:28
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:25
/* Translators: link to the Google documentation page. */
__( 'If you want to use a different From Email address you can setup a Google email alias. %1$sFollow these instructions%2$s, then select the alias in the From Email section below.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:30
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:27
/* Translators: name of the oAuth provider (Google, Microsoft, ...). */
__( 'Removing this OAuth connection will give you the ability to redo the OAuth connection or connect to different %s account.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:31
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:28
__( 'Connected as', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:109
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:99
__( 'There was an error while processing the authentication request. The state key is invalid. Please try again.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsAmazonSESIdentities.vue:23
@@ -928,66 +921,6 @@ $generated_i18n_strings = array(
__( '%1$sFollow this link%2$s to get a Mailgun API Key. Generate a key in the "Mailgun API Keys" section.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/WizardStepPluginFeatures.vue:25
__( 'Improve your SEO rankings with the All in One SEO plugin.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:15
__( 'One-Click Setup', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:16
__( 'Provides a quick and easy way to connect to Google that doesn\'t require creating your own app.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:30
__( 'Enabled', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:31
__( 'Disabled', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:24
__( 'Sign in with Google', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:123
__( 'There was an error while processing the authentication request.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:142
__( 'Now you can continue mailer configuration.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:40
__( 'Gmail mailer requires a valid Easy WP SMTP Pro license. Please activate your license key.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:40
__( 'One-Click Setup for Google Mailer requires an active license. Emails are currently not being sent.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:40
__( 'One-Click Setup for Google Mailer requires an active license. Verify your license to proceed with this one-click setup.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:40
__( 'One-Click Setup for Google Mailer requires an active license. Verify your license to proceed with this one-click setup, please.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:41
__( 'One-Click Setup for Google Mailer requires an active license. Verify your license to proceed with this One-Click Setup, please.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:147
__( 'You have successfully connected your site with your Gmail account. This site will now send emails via your Gmail account.', 'wp-mail-smtp' ),
// Reference: src/modules/settings/components/input/SettingsOAuthConnection.vue:141
__( 'You have successfully connected your site with your Gmail account. Now you can start sending emails through Gmail.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:28
__( 'The email address that emails are sent from. You can use only connected email address or ', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:28
__( 'The email address that emails are sent from. You can use only connected email address or his alias.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:28
__( 'The email address that emails are sent from. The email address that emails are sent from. You can use only the connected email address or its alias.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:28
__( 'The email address that emails are sent from. You can use only the connected email address or its alias.', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:32
__( 'One-Click Setup for Google Mailer <br> is a Pro Feature', 'wp-mail-smtp' ),
// Reference: src/modules/setup-wizard/components/steps/configure-mailer/Gmail.vue:33
__( 'We\'re sorry, One-Click Setup for Google Mailer is not available on your plan. Please upgrade to the Pro plan to unlock all these awesome features.', 'wp-mail-smtp' )
__( 'Improve your SEO rankings with the All in One SEO plugin.', 'wp-mail-smtp' )
);
/* THIS IS THE END OF THE GENERATED FILE */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
<svg width="46" height="46" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><rect id="wp-mail-smtp-google-sign-in-icon__b" x="0" y="0" width="40" height="40" rx="2"/><rect id="wp-mail-smtp-google-sign-in-icon__c" x="5" y="5" width="38" height="38" rx="1"/><filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="wp-mail-smtp-google-sign-in-icon__a"><feOffset dy="1" in="SourceAlpha" result="shadowOffsetOuter1"/><feGaussianBlur stdDeviation=".5" in="shadowOffsetOuter1" result="shadowBlurOuter1"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.168 0" in="shadowBlurOuter1" result="shadowMatrixOuter1"/><feOffset in="SourceAlpha" result="shadowOffsetOuter2"/><feGaussianBlur stdDeviation=".5" in="shadowOffsetOuter2" result="shadowBlurOuter2"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.084 0" in="shadowBlurOuter2" result="shadowMatrixOuter2"/><feMerge><feMergeNode in="shadowMatrixOuter1"/><feMergeNode in="shadowMatrixOuter2"/><feMergeNode in="SourceGraphic"/></feMerge></filter></defs><g fill="none" fill-rule="evenodd"><g class="wp-mail-smtp-google-sign-in-icon__border" transform="translate(3 3)" filter="url(#wp-mail-smtp-google-sign-in-icon__a)"><use fill="#4285F4" xlink:href="#wp-mail-smtp-google-sign-in-icon__b"/><use xlink:href="#wp-mail-smtp-google-sign-in-icon__b"/><use xlink:href="#wp-mail-smtp-google-sign-in-icon__b"/><use xlink:href="#wp-mail-smtp-google-sign-in-icon__b"/></g><g class="wp-mail-smtp-google-sign-in-icon__bg" transform="translate(-1 -1)"><use fill="#FFF" xlink:href="#wp-mail-smtp-google-sign-in-icon__c"/><use xlink:href="#wp-mail-smtp-google-sign-in-icon__c"/><use xlink:href="#wp-mail-smtp-google-sign-in-icon__c"/><use xlink:href="#wp-mail-smtp-google-sign-in-icon__c"/></g><path class="wp-mail-smtp-google-sign-in-icon__symbol" d="M31.64 23.205c0-.639-.057-1.252-.164-1.841H23v3.481h4.844a4.14 4.14 0 0 1-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.875 2.684-6.615Z" fill="#4285F4"/><path class="wp-mail-smtp-google-sign-in-icon__symbol" d="M23 32c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711h-3.007v2.332A8.997 8.997 0 0 0 23 32Z" fill="#34A853"/><path class="wp-mail-smtp-google-sign-in-icon__symbol" d="M17.964 24.71a5.41 5.41 0 0 1-.282-1.71c0-.593.102-1.17.282-1.71v-2.332h-3.007A8.996 8.996 0 0 0 14 23c0 1.452.348 2.827.957 4.042l3.007-2.332Z" fill="#FBBC05"/><path class="wp-mail-smtp-google-sign-in-icon__symbol" d="M23 17.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C27.463 14.891 25.426 14 23 14a8.997 8.997 0 0 0-8.043 4.958l3.007 2.332c.708-2.127 2.692-3.71 5.036-3.71Z" fill="#EA4335"/><path d="M14 14h18v18H14V14Z"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

File diff suppressed because one or more lines are too long

View File

@@ -3,7 +3,7 @@ Contributors: wpforms, jaredatch, smub, slaFFik, capuderg
Tags: smtp, wp mail smtp, wordpress smtp, gmail smtp, sendgrid smtp, mailgun smtp, mail, mailer, phpmailer, wp_mail, email, mailgun, sengrid, gmail, sendinblue, brevo, wp smtp
Requires at least: 5.2
Tested up to: 6.4
Stable tag: 3.11.0
Stable tag: 3.10.0
Requires PHP: 7.2
Make email delivery easy for WordPress. Connect with SMTP, Gmail, Outlook, SendGrid, Mailgun, SES, Zoho, + more. Rated #1 WordPress SMTP Email plugin.
@@ -128,8 +128,6 @@ This allows you to use your <a href="http://www.wpbeginner.com/beginners-guide/h
Unlike other Gmail SMTP plugins, our Gmail SMTP option uses OAuth to authenticate your Google account, keeping your login information 100% secure.
Our plugin also offers the "One-Click Setup" option, which allows you to start sending emails from your Gmail account with just a few clicks. It eliminates the need to manually configure your own Google App, which is a technical and time-consuming process.
Read our <a href="https://wpmailsmtp.com/docs/how-to-set-up-the-gmail-mailer-in-wp-mail-smtp/" rel="friend">Gmail documentation</a> for more details.
#### Microsoft SMTP (Outlook.com and Office 365)
@@ -380,15 +378,6 @@ By all means please contact us to discuss features or options you'd like to see
== Changelog ==
= 3.11.0 - 2023-12-13 =
- Added: Filter to customize the capability required for managing the plugin.
- Changed: Hide test tab movement notice for new users.
- Changed: Improved keyboard navigation styles for the Setup Wizard.
- Changed: Removed `WPMailSMTP\Admin\PluginsInstallUpgrader` class and switched to the WordPress Core `Plugin_Upgrader` class.
- Changed: The "From email" dropdown to the input field in the Gmail mailer.
- Fixed: PHP deprecation notices in the Setup Wizard on WordPress 6.4 and above.
- Fixed: Compatibility issue with Action Scheduler lower than 3.3.0.
= 3.10.0 - 2023-11-08 =
- Added: Filter that allows to use self website Google OAuth redirect URL.
- Changed: Improve plugin settings UI, by changing checkboxes to toggles and some dividers cleanup.

View File

@@ -47,7 +47,7 @@ class AdminBarMenu {
if (
is_user_logged_in() &&
current_user_can( wp_mail_smtp()->get_capability_manage_options() )
current_user_can( 'manage_options' )
) {
$access = true;
}

View File

@@ -138,7 +138,7 @@ class Area {
return;
}
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
@@ -177,13 +177,6 @@ class Area {
WP::ADMIN_NOTICE_ERROR
);
break;
case 'google_unsuccessful_oauth':
WP::add_admin_notice(
esc_html__( 'There was an error while processing the authentication request.', 'wp-mail-smtp' ),
WP::ADMIN_NOTICE_ERROR
);
break;
}
switch ( $success ) {
@@ -251,17 +244,6 @@ class Area {
return;
}
/*
* Don't display the notice if the user installed a plugin with a new "Email Test"
* location (starting from v3.9.0) and is not aware of the old one. Also, don't display
* the notice if the `wp_mail_smtp_initial_version` option is not set (it can happen if
* the plugin was activated network wise in the multisite installation and plugin
* activation hook was not performed on the subsite level).
*/
if ( version_compare( get_option( 'wp_mail_smtp_initial_version', '3.9.0' ), '3.9.0', '>=' ) ) {
return;
}
WP::add_admin_notice(
sprintf(
wp_kses(
@@ -303,7 +285,7 @@ class Area {
public function add_admin_options_page() {
// Options pages access capability.
$access_capability = wp_mail_smtp()->get_capability_manage_options();
$access_capability = 'manage_options';
$this->hook = add_menu_page(
esc_html__( 'WP Mail SMTP', 'wp-mail-smtp' ),
@@ -366,7 +348,7 @@ class Area {
add_menu_page(
esc_html__( 'WP Mail SMTP', 'wp-mail-smtp' ),
esc_html__( 'WP Mail SMTP', 'wp-mail-smtp' ),
wp_mail_smtp()->get_capability_manage_options(),
'manage_options',
self::SLUG,
[ $this, 'display_network_product_education_page' ],
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiM5ZWEzYTgiIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDQzIDM0Ij48cGF0aCBkPSJNMC4wMDcsMy41ODVWMjAuNDIxcTAsMy41ODYsMy43NTEsMy41ODVMMjAsMjRWMTlIMzBWMTQuMDE0bDAuOTkxLTFMMzQsMTNWMy41ODVRMzQsMCwzMC4yNDksMEgzLjc1OFEwLjAwNywwLC4wMDcsMy41ODVoMFpNMy41MjQsNi4xNTdhMS40OSwxLjQ5LDAsMCwxLS41MDgtMC45MzUsMS41ODEsMS41ODEsMCwwLDEsLjI3NC0xLjIwOCwxLjQ0OSwxLjQ0OSwwLDAsMSwxLjA5NC0uNjYzLDEuNzU2LDEuNzU2LDAsMCwxLDEuMjUuMzEybDExLjQwOSw3LjcxNkwyOC4zNzQsMy42NjNhMS45NiwxLjk2LDAsMCwxLDEuMjg5LS4zMTIsMS41NDYsMS41NDYsMCwwLDEsMS4wOTQuNjYzLDEuNCwxLjQsMCwwLDEsLjI3MywxLjIwOCwxLjY3LDEuNjcsMCwwLDEtLjU0Ny45MzVMMTcuMDQzLDE3LjIyNVoiLz48cGF0aCBkPSJNMjIsMjhIMzJsLTAuMDA5LDQuNjI0YTEuMTI2LDEuMTI2LDAsMCwwLDEuOTIyLjhsOC4yNS04LjIzNmExLjEyNiwxLjEyNiwwLDAsMCwwLTEuNTk0bC04LjI1LTguMjQxYTEuMTI2LDEuMTI2LDAsMCwwLTEuOTIyLjh2NC44NjZMMjIsMjF2N1oiLz48L3N2Zz4=',
@@ -555,10 +537,6 @@ class Area {
esc_url( wp_mail_smtp()->get_utm_url( 'https://wpmailsmtp.com/docs/how-to-upgrade-wp-mail-smtp-to-pro-version/', [ 'medium' => 'plugin-settings', 'content' => 'Pro Mailer Popup - Already purchased' ] ) ),
esc_html__( 'Already purchased?', 'wp-mail-smtp' )
),
'gmail' => [
'one_click_setup_upgrade_title' => wp_kses( __( 'One-Click Setup for Google Mailer <br> is a Pro Feature', 'wp-mail-smtp' ), [ 'br' => [] ] ),
'one_click_setup_upgrade_content' => esc_html__( 'We\'re sorry, One-Click Setup for Google Mailer is not available on your plan. Please upgrade to the Pro plan to unlock all these awesome features.', 'wp-mail-smtp' ),
],
],
'all_mailers_supports' => wp_mail_smtp()->get_providers()->get_supports_all(),
'nonce' => wp_create_nonce( 'wp-mail-smtp-admin' ),
@@ -840,10 +818,7 @@ class Area {
*
* @param string $capability Email logs access capability.
*/
return apply_filters(
'wp_mail_smtp_admin_area_get_logs_access_capability',
wp_mail_smtp()->get_capability_manage_options()
);
return apply_filters( 'wp_mail_smtp_admin_area_get_logs_access_capability', 'manage_options' );
}
/**
@@ -1151,7 +1126,7 @@ class Area {
$data = [];
// Only admins can fire these ajax requests.
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( $data );
}

View File

@@ -6,6 +6,7 @@ use WPMailSMTP\ConnectionInterface;
use WPMailSMTP\Debug;
use WPMailSMTP\Helpers\UI;
use WPMailSMTP\Options;
use WPMailSMTP\Providers\Gmail\Auth;
/**
* Class ConnectionSettings.
@@ -70,14 +71,39 @@ class ConnectionSettings {
<label for="wp-mail-smtp-setting-from_email"><?php esc_html_e( 'From Email', 'wp-mail-smtp' ); ?></label>
</div>
<div class="wp-mail-smtp-setting-field">
<input name="wp-mail-smtp[mail][from_email]" type="email"
value="<?php echo esc_attr( $connection_options->get( 'mail', 'from_email' ) ); ?>"
id="wp-mail-smtp-setting-from_email" spellcheck="false"
placeholder="<?php echo esc_attr( wp_mail_smtp()->get_processor()->get_default_email() ); ?>"
<?php disabled( $connection_options->is_const_defined( 'mail', 'from_email' ) || ! empty( $disabled_email ) ); ?>
/>
<?php if ( $mailer !== 'gmail' ) : ?>
<input name="wp-mail-smtp[mail][from_email]" type="email"
value="<?php echo esc_attr( $connection_options->get( 'mail', 'from_email' ) ); ?>"
id="wp-mail-smtp-setting-from_email" spellcheck="false"
placeholder="<?php echo esc_attr( wp_mail_smtp()->get_processor()->get_default_email() ); ?>"
<?php disabled( $connection_options->is_const_defined( 'mail', 'from_email' ) || ! empty( $disabled_email ) ); ?>
/>
<?php else : ?>
<?php
// Gmail mailer From Email selector.
$gmail_auth = new Auth( $this->connection );
$gmail_aliases = $gmail_auth->is_clients_saved() ? $gmail_auth->get_user_possible_send_from_addresses() : [];
?>
<?php if ( ! in_array( $mailer, [ 'zoho' ], true ) ) : ?>
<?php if ( empty( $gmail_aliases ) ) : ?>
<select name="wp-mail-smtp[mail][from_email]" id="wp-mail-smtp-setting-from_email" disabled>
<option value="">
<?php esc_html_e( 'Please first authorize the Gmail mailer below', 'wp-mail-smtp' ); ?>
</option>
</select>
<?php else : ?>
<select name="wp-mail-smtp[mail][from_email]" id="wp-mail-smtp-setting-from_email">
<?php foreach ( $gmail_aliases as $gmail_email_address ) : ?>
<option value="<?php echo esc_attr( $gmail_email_address ); ?>" <?php selected( $connection_options->get( 'mail', 'from_email' ), $gmail_email_address ); ?>>
<?php echo esc_html( $gmail_email_address ); ?>
</option>
<?php endforeach; ?>
</select>
<?php endif; ?>
<?php endif; ?>
<?php if ( ! in_array( $mailer, [ 'gmail', 'zoho' ], true ) ) : ?>
<p class="desc">
<?php esc_html_e( 'The email address that emails are sent from.', 'wp-mail-smtp' ); ?>
</p>
@@ -309,6 +335,8 @@ class ConnectionSettings {
*/
public function process( $data, $old_data ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded, Generic.Metrics.CyclomaticComplexity.TooHigh
$connection_options = $this->connection->get_options();
// When checkbox is unchecked - it's not submitted at all, so we need to define its default false value.
if ( ! isset( $data['mail']['from_email_force'] ) ) {
$data['mail']['from_email_force'] = false;
@@ -344,6 +372,21 @@ class ConnectionSettings {
}
}
// Old and new Gmail client id/secret values are different - we need to invalidate tokens and scroll to Auth button.
if (
$this->connection->get_mailer_slug() === 'gmail' &&
! empty( $data['gmail']['client_id'] ) &&
! empty( $data['gmail']['client_secret'] ) &&
(
$connection_options->get( 'gmail', 'client_id' ) !== $data['gmail']['client_id'] ||
$connection_options->get( 'gmail', 'client_secret' ) !== $data['gmail']['client_secret']
)
) {
unset( $old_data['gmail'] );
$this->scroll_to = '#wp-mail-smtp-setting-row-gmail-authorize';
}
// Prevent redirect to setup wizard from settings page after successful auth.
if (
! empty( $data['mail']['mailer'] ) &&
@@ -352,15 +395,7 @@ class ConnectionSettings {
$data[ $data['mail']['mailer'] ]['is_setup_wizard_auth'] = false;
}
/**
* Filters connection data.
*
* @since 3.11.0
*
* @param array $data Connection data.
* @param array $old_data Old connection data.
*/
return apply_filters( 'wp_mail_smtp_admin_connection_settings_process_data', $data, $old_data );
return $data;
}
/**
@@ -381,19 +416,24 @@ class ConnectionSettings {
) {
// Save correct from email address if Gmail mailer is already configured.
if ( $data['mail']['mailer'] === 'gmail' ) {
$gmail_auth = wp_mail_smtp()->get_providers()->get_auth( 'gmail', $this->connection );
$user_info = ! $gmail_auth->is_auth_required() ? $gmail_auth->get_user_info() : false;
if (
is_array( $data ) && in_array( $data['mail']['mailer'], [ 'gmail' ], true ) &&
! empty( $data['gmail']['client_id'] ) &&
! empty( $data['gmail']['client_secret'] )
) {
$gmail_auth = new Auth( $this->connection );
$gmail_aliases = $gmail_auth->is_clients_saved() ? $gmail_auth->get_user_possible_send_from_addresses() : [];
if (
! empty( $user_info['email'] ) &&
is_email( $user_info['email'] ) !== false &&
! empty( $gmail_aliases ) &&
isset( $gmail_aliases[0] ) &&
is_email( $gmail_aliases[0] ) !== false &&
(
empty( $data['mail']['from_email'] ) ||
$data['mail']['from_email'] !== $user_info['email']
! in_array( $data['mail']['from_email'], $gmail_aliases, true )
)
) {
$data['mail']['from_email'] = $user_info['email'];
$data['mail']['from_email'] = $gmail_aliases[0];
$this->connection->get_options()->set( $data, false, false );
}

View File

@@ -58,7 +58,7 @@ class DashboardWidget {
public function init() {
// This widget should be displayed for certain high-level users only.
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
@@ -181,7 +181,7 @@ class DashboardWidget {
check_admin_referer( 'wp_mail_smtp_' . static::SLUG . '_nonce' );
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error();
}
@@ -202,7 +202,7 @@ class DashboardWidget {
check_admin_referer( 'wp_mail_smtp_' . static::SLUG . '_nonce' );
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error();
}

View File

@@ -100,7 +100,7 @@ class DebugEvents {
wp_send_json_error( esc_html__( 'Access rejected.', 'wp-mail-smtp' ) );
}
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( esc_html__( 'You don\'t have the capability to perform this action.', 'wp-mail-smtp' ) );
}
@@ -139,7 +139,7 @@ class DebugEvents {
wp_send_json_error( esc_html__( 'Access rejected.', 'wp-mail-smtp' ) );
}
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( esc_html__( 'You don\'t have the capability to perform this action.', 'wp-mail-smtp' ) );
}

View File

@@ -558,7 +558,7 @@ class Table extends \WP_List_Table {
</div>
<?php
if ( current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( current_user_can( 'manage_options' ) ) {
wp_nonce_field( 'wp_mail_smtp_debug_events', 'wp-mail-smtp-debug-events-nonce', false );
printf(
'<button id="wp-mail-smtp-delete-all-debug-events-button" type="button" class="button">%s</button>',

View File

@@ -92,7 +92,7 @@ class Education {
check_ajax_referer( 'wp-mail-smtp-admin', 'nonce' );
// Check for permissions.
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error();
}

View File

@@ -76,7 +76,7 @@ class Notifications {
$access = false;
if (
current_user_can( wp_mail_smtp()->get_capability_manage_options() ) &&
current_user_can( 'manage_options' ) &&
! Options::init()->get( 'general', 'am_notifications_hidden' )
) {
$access = true;
@@ -512,7 +512,7 @@ class Notifications {
check_ajax_referer( 'wp-mail-smtp-admin', 'nonce' );
// Check for access and required param.
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) || empty( $_POST['id'] ) ) {
if ( ! current_user_can( 'manage_options' ) || empty( $_POST['id'] ) ) {
wp_send_json_error();
}

View File

@@ -2,10 +2,9 @@
namespace WPMailSMTP\Admin\Pages;
use Plugin_Upgrader;
use WPMailSMTP\Admin\PageAbstract;
use WPMailSMTP\Admin\PluginsInstallSkin;
use WPMailSMTP\Helpers\Helpers;
use WPMailSMTP\Admin\PluginsInstallUpgrader;
/**
* About tab.
@@ -604,14 +603,7 @@ class AboutTab extends PageAbstract {
)
);
/*
* The `request_filesystem_credentials` function will output a credentials form in case of failure.
* We don't want that, since it will break AJAX response. So just hide output with a buffer.
*/
ob_start();
// phpcs:ignore WPForms.Formatting.EmptyLineAfterAssigmentVariables.AddEmptyLine
$creds = request_filesystem_credentials( $url, '', false, false, null );
ob_end_clean();
// Check for file system permissions.
if ( false === $creds ) {
@@ -625,11 +617,8 @@ class AboutTab extends PageAbstract {
// Do not allow WordPress to search/download translations, as this will break JS output.
remove_action( 'upgrader_process_complete', [ 'Language_Pack_Upgrader', 'async_upgrade' ], 20 );
// Import the plugin upgrader.
Helpers::include_plugin_upgrader();
// Create the plugin upgrader with our custom skin.
$installer = new Plugin_Upgrader( new PluginsInstallSkin() );
$installer = new PluginsInstallUpgrader( new PluginsInstallSkin() );
// Error check.
if ( ! method_exists( $installer, 'install' ) ) {

View File

@@ -6,6 +6,7 @@ use WPMailSMTP\Admin\ConnectionSettings;
use WPMailSMTP\Admin\PageAbstract;
use WPMailSMTP\Admin\SetupWizard;
use WPMailSMTP\Options;
use WPMailSMTP\Providers\Gmail\Auth;
use WPMailSMTP\WP;
/**

View File

@@ -2,16 +2,13 @@
namespace WPMailSMTP\Admin;
use Automatic_Upgrader_Skin;
/**
* WordPress class extended for on-the-fly plugin installations.
*
* @since 1.5.0
* @since 1.7.1 Removed feedback() method override to be compatible with PHP5.3+ and WP5.3.
* @since 3.11.0 Updated to extend Automatic_Upgrader_Skin.
*/
class PluginsInstallSkin extends Automatic_Upgrader_Skin {
class PluginsInstallSkin extends \WP_Upgrader_Skin {
/**
* Empty out the header of its HTML content and only check to see if it has

View File

@@ -2,7 +2,6 @@
namespace WPMailSMTP\Admin;
use Plugin_Upgrader;
use WPMailSMTP\Admin\Pages\TestTab;
use WPMailSMTP\Connect;
use WPMailSMTP\Helpers\Helpers;
@@ -82,7 +81,7 @@ class SetupWizard {
isset( $_GET['page'] ) && // phpcs:ignore WordPress.Security.NonceVerification.Recommended
Area::SLUG . '-setup-wizard' === $_GET['page'] && // phpcs:ignore WordPress.Security.NonceVerification.Recommended
$this->should_setup_wizard_load() &&
current_user_can( wp_mail_smtp()->get_capability_manage_options() )
current_user_can( 'manage_options' )
)
) {
return;
@@ -98,10 +97,6 @@ class SetupWizard {
// Remove an action in the Gutenberg plugin ( not core Gutenberg ) which throws an error.
remove_action( 'admin_print_styles', 'gutenberg_block_editor_admin_print_styles' );
// Remove hooks for deprecated functions in WordPress 6.4.0.
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_action( 'admin_head', 'wp_admin_bar_header' );
$this->load_setup_wizard();
}
@@ -160,7 +155,7 @@ class SetupWizard {
return;
}
add_submenu_page( '', '', '', wp_mail_smtp()->get_capability_manage_options(), Area::SLUG . '-setup-wizard', '' );
add_submenu_page( '', '', '', 'manage_options', Area::SLUG . '-setup-wizard', '' );
}
/**
@@ -548,7 +543,7 @@ class SetupWizard {
check_ajax_referer( 'wpms-admin-nonce', 'nonce' );
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( esc_html__( 'You don\'t have permission to change options for this WP site!', 'wp-mail-smtp' ) );
}
@@ -566,7 +561,7 @@ class SetupWizard {
check_ajax_referer( 'wpms-admin-nonce', 'nonce' );
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( esc_html__( 'You don\'t have permission to change options for this WP site!', 'wp-mail-smtp' ) );
}
@@ -588,7 +583,7 @@ class SetupWizard {
check_ajax_referer( 'wpms-admin-nonce', 'nonce' );
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error();
}
@@ -630,7 +625,7 @@ class SetupWizard {
check_ajax_referer( 'wpms-admin-nonce', 'nonce' );
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( esc_html__( 'You don\'t have permission to change options for this WP site!', 'wp-mail-smtp' ) );
}
@@ -695,7 +690,6 @@ class SetupWizard {
*
* @since 2.6.0
* @since 3.10.0 Supply WPMS_AMAZONSES_DISPLAY_IDENTITIES constant value to control display of Amazon SES identity list.
* @since 3.11.0 Removed WPMS_AMAZONSES_DISPLAY_IDENTITIES constant handling.
*
* @return array
*/
@@ -716,6 +710,10 @@ class SetupWizard {
if ( $provider->get_slug() === 'gmail' ) {
$data['gmail']['redirect_uri'] = \WPMailSMTP\Providers\Gmail\Auth::get_oauth_redirect_url();
}
if ( $provider->get_slug() === 'amazonses' ) {
$data['amazonses']['display_identities'] = ! defined( 'WPMS_AMAZONSES_DISPLAY_IDENTITIES' ) || WPMS_AMAZONSES_DISPLAY_IDENTITIES === true;
}
}
return apply_filters( 'wp_mail_smtp_admin_setup_wizard_prepare_mailer_options', $data );
@@ -730,7 +728,7 @@ class SetupWizard {
check_ajax_referer( 'wpms-admin-nonce', 'nonce' );
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error();
}
@@ -740,7 +738,7 @@ class SetupWizard {
// phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
$settings = isset( $_POST['settings'] ) ? wp_slash( json_decode( wp_unslash( $_POST['settings'] ), true ) ) : [];
if ( empty( $mailer ) ) {
if ( empty( $mailer ) || empty( $settings ) ) {
wp_send_json_error();
}
@@ -751,7 +749,7 @@ class SetupWizard {
switch ( $mailer ) {
case 'gmail':
$auth = wp_mail_smtp()->get_providers()->get_auth( 'gmail' );
$auth = new \WPMailSMTP\Providers\Gmail\Auth();
if ( $auth->is_clients_saved() && $auth->is_auth_required() ) {
$data['oauth_url'] = $auth->get_auth_url();
@@ -773,7 +771,7 @@ class SetupWizard {
check_ajax_referer( 'wpms-admin-nonce', 'nonce' );
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error();
}
@@ -786,11 +784,20 @@ class SetupWizard {
switch ( $mailer ) {
case 'gmail':
$auth = wp_mail_smtp()->get_providers()->get_auth( 'gmail' );
$auth = new \WPMailSMTP\Providers\Gmail\Auth();
if ( $auth->is_clients_saved() && ! $auth->is_auth_required() ) {
$user_info = $auth->get_user_info();
$data['connected_email'] = $user_info['email'];
$user_info = $auth->get_user_info();
$data['connected_email'] = $user_info['email'];
$data['possible_send_from_addresses'] = array_map(
function( $value ) {
return [
'value' => $value,
'label' => $value,
];
},
$auth->get_user_possible_send_from_addresses()
);
}
break;
}
@@ -803,11 +810,11 @@ class SetupWizard {
*
* @since 2.6.0
*/
public function remove_oauth_connection() { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh
public function remove_oauth_connection() {
check_ajax_referer( 'wpms-admin-nonce', 'nonce' );
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error();
}
@@ -820,21 +827,10 @@ class SetupWizard {
$options = Options::init();
$old_opt = $options->get_all_raw();
/*
* Since Gmail mailer uses the same settings array for both the custom app and One-Click Setup,
* we need to make sure we don't remove the wrong settings.
*/
if ( $mailer === 'gmail' ) {
unset( $old_opt[ $mailer ]['access_token'] );
unset( $old_opt[ $mailer ]['refresh_token'] );
unset( $old_opt[ $mailer ]['user_details'] );
unset( $old_opt[ $mailer ]['auth_code'] );
} else {
foreach ( $old_opt[ $mailer ] as $key => $value ) {
// Unset everything except Client ID, Client Secret and Domain (for Zoho).
if ( ! in_array( $key, [ 'domain', 'client_id', 'client_secret' ], true ) ) {
unset( $old_opt[ $mailer ][ $key ] );
}
foreach ( $old_opt[ $mailer ] as $key => $value ) {
// Unset everything except Client ID, Client Secret and Domain (for Zoho).
if ( ! in_array( $key, array( 'domain', 'client_id', 'client_secret' ), true ) ) {
unset( $old_opt[ $mailer ][ $key ] );
}
}
@@ -872,16 +868,8 @@ class SetupWizard {
wp_send_json_error( esc_html__( 'Could not install the plugin. Plugin is not whitelisted.', 'wp-mail-smtp' ) );
}
$url = esc_url_raw( WP::admin_url( 'admin.php?page=' . Area::SLUG . '-setup-wizard' ) );
/*
* The `request_filesystem_credentials` function will output a credentials form in case of failure.
* We don't want that, since it will break AJAX response. So just hide output with a buffer.
*/
ob_start();
// phpcs:ignore WPForms.Formatting.EmptyLineAfterAssigmentVariables.AddEmptyLine
$url = esc_url_raw( WP::admin_url( 'admin.php?page=' . Area::SLUG . '-setup-wizard' ) );
$creds = request_filesystem_credentials( $url, '', false, false, null );
ob_end_clean();
// Check for file system permissions.
if ( false === $creds ) {
@@ -895,11 +883,8 @@ class SetupWizard {
// Do not allow WordPress to search/download translations, as this will break JS output.
remove_action( 'upgrader_process_complete', [ 'Language_Pack_Upgrader', 'async_upgrade' ], 20 );
// Import the plugin upgrader.
Helpers::include_plugin_upgrader();
// Create the plugin upgrader with our custom skin.
$installer = new Plugin_Upgrader( new PluginsInstallSkin() );
$installer = new PluginsInstallUpgrader( new PluginsInstallSkin() );
// Error check.
if ( ! method_exists( $installer, 'install' ) || empty( $slug ) ) {

View File

@@ -2,10 +2,9 @@
namespace WPMailSMTP;
use Plugin_Upgrader;
use WP_Error;
use WPMailSMTP\Admin\PluginsInstallSkin;
use WPMailSMTP\Helpers\Helpers;
use WPMailSMTP\Admin\PluginsInstallUpgrader;
/**
* WP Mail SMTP Connect.
@@ -218,14 +217,7 @@ class Connect {
wp_send_json_success( esc_html__( 'Plugin installed & activated.', 'wp-mail-smtp' ) );
}
/*
* The `request_filesystem_credentials` function will output a credentials form in case of failure.
* We don't want that, since it will break AJAX response. So just hide output with a buffer.
*/
ob_start();
// phpcs:ignore WPForms.Formatting.EmptyLineAfterAssigmentVariables.AddEmptyLine
$creds = request_filesystem_credentials( $url, '', false, false, null );
ob_end_clean();
// Check for file system permissions.
$perm_error = esc_html__( 'There was an error while installing an upgrade. Please check file system permissions and try again. Also, you can download the plugin from wpmailsmtp.com and install it manually.', 'wp-mail-smtp' );
@@ -241,11 +233,8 @@ class Connect {
// Do not allow WordPress to search/download translations, as this will break JS output.
remove_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 );
// Import the plugin upgrader.
Helpers::include_plugin_upgrader();
// Create the plugin upgrader with our custom skin.
$installer = new Plugin_Upgrader( new PluginsInstallSkin() );
$installer = new PluginsInstallUpgrader( new PluginsInstallSkin() );
// Error check.
if ( ! method_exists( $installer, 'install' ) ) {

View File

@@ -175,7 +175,7 @@ class Core {
}
// Plugin admin area notices. Display to "admins" only.
if ( current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( current_user_can( 'manage_options' ) ) {
add_action( 'admin_notices', array( '\WPMailSMTP\WP', 'display_admin_notices' ) );
add_action( 'admin_notices', array( $this, 'display_general_notices' ) );
@@ -609,7 +609,7 @@ class Core {
public function detect_conflicts() {
// Display only for those who can actually deactivate plugins.
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
@@ -1346,23 +1346,4 @@ class Core {
return;
}
}
/**
* Get the default capability to manage everything for WP Mail SMTP.
*
* @since 3.11.0
*
* @return string
*/
public function get_capability_manage_options() {
/**
* Filters the default capability to manage everything for WP Mail SMTP.
*
* @since 3.11.0
*
* @param string $capability The default capability to manage everything for WP Mail SMTP.
*/
return apply_filters( 'wp_mail_smtp_core_get_capability_manage_options', 'manage_options' );
}
}

View File

@@ -37,7 +37,7 @@ class DBRepair {
isset( $_GET['create-missing-db-tables'] ) &&
$_GET['create-missing-db-tables'] === '1' &&
wp_mail_smtp()->get_admin()->is_admin_page() &&
current_user_can( wp_mail_smtp()->get_capability_manage_options() )
current_user_can( 'manage_options' )
) {
check_admin_referer( Area::SLUG . '-create-missing-db-tables' );
@@ -165,7 +165,7 @@ class DBRepair {
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
isset( $_GET['check-db-tables'] ) && $_GET['check-db-tables'] === '1' &&
wp_mail_smtp()->get_admin()->is_admin_page() &&
current_user_can( wp_mail_smtp()->get_capability_manage_options() )
current_user_can( 'manage_options' )
) {
$missing_tables = $this->get_missing_tables();

View File

@@ -166,60 +166,4 @@ class Geo {
return $miles;
}
/**
* Get the user IP address.
*
* @since 3.11.0
*
* Code based on the:
* - WordPress method \WP_Community_Events::get_unsafe_client_ip
* - Cloudflare documentation https://support.cloudflare.com/hc/en-us/articles/206776727
*
* @return string
*/
public static function get_ip() {
$ip = '127.0.0.1';
$address_headers = [
'HTTP_TRUE_CLIENT_IP',
'HTTP_CF_CONNECTING_IP',
'HTTP_X_REAL_IP',
'HTTP_CLIENT_IP',
'HTTP_X_FORWARDED_FOR',
'HTTP_X_FORWARDED',
'HTTP_X_CLUSTER_CLIENT_IP',
'HTTP_FORWARDED_FOR',
'HTTP_FORWARDED',
'REMOTE_ADDR',
];
foreach ( $address_headers as $header ) {
if ( empty( $_SERVER[ $header ] ) ) {
continue;
}
/*
* HTTP_X_FORWARDED_FOR can contain a chain of comma-separated addresses, with or without spaces.
* The first address is the original client. It can't be trusted for authenticity,
* but we don't need to for this purpose.
*/
// phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
$address_chain = explode( ',', wp_unslash( $_SERVER[ $header ] ) );
$ip = filter_var( trim( $address_chain[0] ), FILTER_VALIDATE_IP );
break;
}
/**
* Filter detected IP address.
*
* @since 3.11.0
*
* @param string $ip IP address.
*/
return filter_var( apply_filters( 'wp_mail_smtp_geo_get_ip', $ip ), FILTER_VALIDATE_IP );
}
}

View File

@@ -153,18 +153,4 @@ class Helpers {
return 'WordPress/' . get_bloginfo( 'version' ) . '; ' . get_bloginfo( 'url' ) . '; WPMailSMTP/' . $license_type . '-' . WPMS_PLUGIN_VER;
}
/**
* Import Plugin_Upgrader class from core.
*
* @since 3.11.0
*/
public static function include_plugin_upgrader() {
/** \WP_Upgrader class */
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
/** \Plugin_Upgrader class */
require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php';
}
}

View File

@@ -46,7 +46,6 @@ class Options {
'pass',
],
'gmail' => [
'one_click_setup_enabled',
'client_id',
'client_secret',
],
@@ -233,7 +232,7 @@ class Options {
*/
public static function get_defaults() {
$defaults = [
return [
'mail' => [
'from_email' => get_option( 'admin_email' ),
'from_name' => get_bloginfo( 'name' ),
@@ -250,15 +249,6 @@ class Options {
SummaryReportEmail::SETTINGS_SLUG => ! is_multisite() ? false : true,
],
];
/**
* Filters the default options.
*
* @since 3.11.0
*
* @param array $defaults Default options.
*/
return apply_filters( 'wp_mail_smtp_options_get_defaults', $defaults );
}
/**

View File

@@ -2,7 +2,6 @@
namespace WPMailSMTP\Providers\Gmail;
use Exception;
use WPMailSMTP\Admin\Area;
use WPMailSMTP\Admin\ConnectionSettings;
use WPMailSMTP\Admin\DebugEvents\DebugEvents;
@@ -134,7 +133,7 @@ class Auth extends AuthAbstract {
) {
try {
$creds = $client->fetchAccessTokenWithAuthCode( $this->options['auth_code'] );
} catch ( Exception $e ) {
} catch ( \Exception $e ) {
$creds['error'] = $e->getMessage();
}
@@ -156,19 +155,22 @@ class Auth extends AuthAbstract {
$this->update_access_token( $client->getAccessToken() );
$this->update_refresh_token( $client->getRefreshToken() );
$this->update_user_details( $client );
// Update the "from email" to the connected user's email.
if ( ! empty( $this->options['user_details']['email'] ) ) {
$this->connection_options->set(
[
'mail' => [
'from_email' => $this->options['user_details']['email'],
],
],
false,
false
);
/*
* We need to set the correct `from_email` address, to avoid the SPF and DKIM issue.
*/
$gmail_aliases = $this->is_clients_saved() ? $this->get_user_possible_send_from_addresses() : [];
$all_connection_options = $this->connection_options->get_all();
if (
! empty( $gmail_aliases ) &&
isset( $gmail_aliases[0] ) &&
is_email( $gmail_aliases[0] ) !== false &&
! in_array( $all_connection_options['mail']['from_email'], $gmail_aliases, true )
) {
$all_connection_options['mail']['from_email'] = $gmail_aliases[0];
$this->connection_options->set( $all_connection_options );
}
}
@@ -186,7 +188,7 @@ class Auth extends AuthAbstract {
if ( ! empty( $refresh ) ) {
try {
$creds = $client->fetchAccessTokenWithRefreshToken( $refresh );
} catch ( Exception $e ) {
} catch ( \Exception $e ) {
$creds['error'] = $e->getMessage();
Debug::set(
'Mailer: Gmail' . "\r\n" .
@@ -339,21 +341,23 @@ class Auth extends AuthAbstract {
exit;
}
Debug::clear();
if ( $is_setup_wizard_auth ) {
Debug::clear();
$this->get_client( true );
$this->get_client( true );
$error = Debug::get_last();
$error = Debug::get_last();
if ( ! empty( $error ) ) {
wp_safe_redirect(
add_query_arg(
'error',
'google_unsuccessful_oauth',
$redirect_url
)
);
exit;
if ( ! empty( $error ) ) {
wp_safe_redirect(
add_query_arg(
'error',
'google_unsuccessful_oauth',
$redirect_url
)
);
exit;
}
}
wp_safe_redirect(
@@ -387,62 +391,23 @@ class Auth extends AuthAbstract {
}
/**
* Get and update user-related details (currently only email).
*
* @since 3.11.0
*
* @param Google_Client $client The Google Client object (optional).
*/
private function update_user_details( $client = false ) {
if ( $client === false ) {
$client = $this->get_client();
}
$gmail = new Gmail( $client );
try {
$email = $gmail->users->getProfile( 'me' )->getEmailAddress();
$user_details = [
'email' => $email,
];
// To save in DB.
$updated_settings = [
$this->mailer_slug => [
'user_details' => $user_details,
],
];
// To save in currently retrieved options array.
$this->options['user_details'] = $user_details;
$this->connection_options->set( $updated_settings, false, false );
} catch ( Exception $e ) { // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedCatch
// Do nothing.
}
}
/**
* Get user information (currently only email) that is associated with the current OAuth connection.
* Get user information (like email etc) that is associated with the current OAuth connection.
*
* @since 1.5.0
* @since 3.11.0 Switched to DB stored value instead of API call.
*
* @return array
*/
public function get_user_info() {
/*
* We need to populate user data on the fly for old users who already performed
* authorization before we switched to DB stored value.
*/
if ( ! isset( $this->options['user_details'] ) && ! $this->is_auth_required() ) {
$this->update_user_details();
$gmail = new Gmail( $this->get_client() );
try {
$email = $gmail->users->getProfile( 'me' )->getEmailAddress();
} catch ( \Exception $e ) {
$email = '';
}
return $this->connection_options->get( $this->mailer_slug, 'user_details' );
return array( 'email' => $email );
}
/**
@@ -474,7 +439,7 @@ class Auth extends AuthAbstract {
);
// phpcs:enable
} catch ( Exception $exception ) {
} catch ( \Exception $exception ) {
DebugEvents::add_debug(
sprintf( /* Translators: %s the error message. */
esc_html__( 'An error occurred when trying to get Gmail aliases: %s' ),

View File

@@ -4,7 +4,6 @@ namespace WPMailSMTP\Providers\Gmail;
use WPMailSMTP\Admin\ConnectionSettings;
use WPMailSMTP\ConnectionInterface;
use WPMailSMTP\Helpers\UI;
use WPMailSMTP\Providers\OptionsAbstract;
/**
@@ -38,9 +37,10 @@ class Options extends OptionsAbstract {
'title' => esc_html__( 'Google / Gmail', 'wp-mail-smtp' ),
'description' => sprintf(
wp_kses( /* translators: %s - URL to our Gmail doc. */
__( 'Our Gmail mailer works with any Gmail or Google Workspace account via the Google API. You can send WordPress emails from your main email address or a Gmail alias, and it\'s more secure than connecting to Gmail using SMTP credentials. We now have a One-Click Setup, which simply asks you to authorize your Google account to use our app and takes care of everything for you. Alternatively, you can connect manually, which involves several steps that are more technical than other mailer options, so we created a detailed guide to walk you through the process.<br><br>To get started, read our <a href="%s" target="_blank" rel="noopener noreferrer">Gmail documentation</a>.', 'wp-mail-smtp' ),
__( 'Our Gmail mailer works with any Gmail or Google Workspace account via the Google API. You can send WordPress emails from your main email address or a Gmail alias, and it\'s more secure than connecting to Gmail using SMTP credentials. The setup steps are more technical than other options, so we created a detailed guide to walk you through the process.<br><br>To get started, read our <a href="%s" target="_blank" rel="noopener noreferrer">Gmail documentation</a>.', 'wp-mail-smtp' ),
[
'br' => [],
'b' => [],
'a' => [
'href' => [],
'rel' => [],
@@ -84,28 +84,6 @@ class Options extends OptionsAbstract {
}
?>
<?php if ( ! wp_mail_smtp()->is_pro() ) : ?>
<div id="wp-mail-smtp-setting-row-<?php echo esc_attr( $this->get_slug() ); ?>-one_click_setup_enabled-lite" class="wp-mail-smtp-setting-row">
<div class="wp-mail-smtp-setting-label">
<label for="wp-mail-smtp-setting-<?php echo esc_attr( $this->get_slug() ); ?>-one_click_setup_enabled-lite">
<?php esc_html_e( 'One-Click Setup', 'wp-mail-smtp' ); ?>
</label>
</div>
<div class="wp-mail-smtp-setting-field">
<?php
UI::toggle(
[
'id' => 'wp-mail-smtp-setting-' . esc_attr( $this->get_slug() ) . '-one_click_setup_enabled-lite',
]
);
?>
<p class="desc">
<?php esc_html_e( 'Provides a quick and easy way to connect to Google that doesn\'t require creating your own app.', 'wp-mail-smtp' ); ?>
</p>
</div>
</div>
<?php endif; ?>
<!-- Client ID -->
<div id="wp-mail-smtp-setting-row-<?php echo esc_attr( $this->get_slug() ); ?>-client_id"
class="wp-mail-smtp-setting-row wp-mail-smtp-setting-row-text wp-mail-smtp-clear">
@@ -264,7 +242,7 @@ class Options extends OptionsAbstract {
*/
public function process_provider_remove() {
if ( ! current_user_can( wp_mail_smtp()->get_capability_manage_options() ) ) {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
@@ -281,10 +259,12 @@ class Options extends OptionsAbstract {
$old_opt = $this->connection_options->get_all_raw();
unset( $old_opt[ $this->get_slug() ]['access_token'] );
unset( $old_opt[ $this->get_slug() ]['refresh_token'] );
unset( $old_opt[ $this->get_slug() ]['user_details'] );
unset( $old_opt[ $this->get_slug() ]['auth_code'] );
foreach ( $old_opt[ $this->get_slug() ] as $key => $value ) {
// Unset everything except Client ID and Secret.
if ( ! in_array( $key, array( 'client_id', 'client_secret' ), true ) ) {
unset( $old_opt[ $this->get_slug() ][ $key ] );
}
}
$this->connection_options->set( $old_opt );
}

View File

@@ -198,7 +198,7 @@ class Loader {
$entity = null;
}
return apply_filters( 'wp_mail_smtp_providers_loader_get_entity', $entity, $provider, $request, $args );
return apply_filters( 'wp_mail_smtp_providers_loader_get_entity', $entity, $provider, $request );
}
/**

View File

@@ -247,8 +247,7 @@ class Tasks {
*/
public static function is_scheduled( $hook ) {
// If ActionScheduler wasn't loaded, then no tasks are scheduled.
if ( ! function_exists( 'as_next_scheduled_action' ) ) {
if ( ! function_exists( 'as_has_scheduled_action' ) ) {
return null;
}
@@ -261,12 +260,7 @@ class Tasks {
}
// Action is not in the array, so it is not scheduled or belongs to another group.
if ( function_exists( 'as_has_scheduled_action' ) ) {
// This function more performant than `as_next_scheduled_action`, but it is available only since AS 3.3.0.
return as_has_scheduled_action( $hook );
} else {
return as_next_scheduled_action( $hook ) !== false;
}
return as_has_scheduled_action( $hook );
}
/**

View File

@@ -146,6 +146,7 @@ return array(
'WPMailSMTP\\Admin\\Pages\\VersusTab' => $baseDir . '/src/Admin/Pages/VersusTab.php',
'WPMailSMTP\\Admin\\ParentPageAbstract' => $baseDir . '/src/Admin/ParentPageAbstract.php',
'WPMailSMTP\\Admin\\PluginsInstallSkin' => $baseDir . '/src/Admin/PluginsInstallSkin.php',
'WPMailSMTP\\Admin\\PluginsInstallUpgrader' => $baseDir . '/src/Admin/PluginsInstallUpgrader.php',
'WPMailSMTP\\Admin\\Review' => $baseDir . '/src/Admin/Review.php',
'WPMailSMTP\\Admin\\SetupWizard' => $baseDir . '/src/Admin/SetupWizard.php',
'WPMailSMTP\\Compatibility\\Compatibility' => $baseDir . '/src/Compatibility/Compatibility.php',
@@ -313,14 +314,6 @@ return array(
'WPMailSMTP\\Pro\\Providers\\AmazonSES\\Identity' => $baseDir . '/src/Pro/Providers/AmazonSES/Identity.php',
'WPMailSMTP\\Pro\\Providers\\AmazonSES\\Mailer' => $baseDir . '/src/Pro/Providers/AmazonSES/Mailer.php',
'WPMailSMTP\\Pro\\Providers\\AmazonSES\\Options' => $baseDir . '/src/Pro/Providers/AmazonSES/Options.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Api\\Client' => $baseDir . '/src/Pro/Providers/Gmail/Api/Client.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Api\\OneTimeToken' => $baseDir . '/src/Pro/Providers/Gmail/Api/OneTimeToken.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Api\\Response' => $baseDir . '/src/Pro/Providers/Gmail/Api/Response.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Api\\SiteId' => $baseDir . '/src/Pro/Providers/Gmail/Api/SiteId.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Auth' => $baseDir . '/src/Pro/Providers/Gmail/Auth.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Mailer' => $baseDir . '/src/Pro/Providers/Gmail/Mailer.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Options' => $baseDir . '/src/Pro/Providers/Gmail/Options.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Provider' => $baseDir . '/src/Pro/Providers/Gmail/Provider.php',
'WPMailSMTP\\Pro\\Providers\\Outlook\\AttachmentsUploader' => $baseDir . '/src/Pro/Providers/Outlook/AttachmentsUploader.php',
'WPMailSMTP\\Pro\\Providers\\Outlook\\Auth' => $baseDir . '/src/Pro/Providers/Outlook/Auth.php',
'WPMailSMTP\\Pro\\Providers\\Outlook\\Mailer' => $baseDir . '/src/Pro/Providers/Outlook/Mailer.php',

View File

@@ -178,6 +178,7 @@ class ComposerStaticInit295984e5919e750baa7d7284cfe56164
'WPMailSMTP\\Admin\\Pages\\VersusTab' => __DIR__ . '/../..' . '/src/Admin/Pages/VersusTab.php',
'WPMailSMTP\\Admin\\ParentPageAbstract' => __DIR__ . '/../..' . '/src/Admin/ParentPageAbstract.php',
'WPMailSMTP\\Admin\\PluginsInstallSkin' => __DIR__ . '/../..' . '/src/Admin/PluginsInstallSkin.php',
'WPMailSMTP\\Admin\\PluginsInstallUpgrader' => __DIR__ . '/../..' . '/src/Admin/PluginsInstallUpgrader.php',
'WPMailSMTP\\Admin\\Review' => __DIR__ . '/../..' . '/src/Admin/Review.php',
'WPMailSMTP\\Admin\\SetupWizard' => __DIR__ . '/../..' . '/src/Admin/SetupWizard.php',
'WPMailSMTP\\Compatibility\\Compatibility' => __DIR__ . '/../..' . '/src/Compatibility/Compatibility.php',
@@ -345,14 +346,6 @@ class ComposerStaticInit295984e5919e750baa7d7284cfe56164
'WPMailSMTP\\Pro\\Providers\\AmazonSES\\Identity' => __DIR__ . '/../..' . '/src/Pro/Providers/AmazonSES/Identity.php',
'WPMailSMTP\\Pro\\Providers\\AmazonSES\\Mailer' => __DIR__ . '/../..' . '/src/Pro/Providers/AmazonSES/Mailer.php',
'WPMailSMTP\\Pro\\Providers\\AmazonSES\\Options' => __DIR__ . '/../..' . '/src/Pro/Providers/AmazonSES/Options.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Api\\Client' => __DIR__ . '/../..' . '/src/Pro/Providers/Gmail/Api/Client.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Api\\OneTimeToken' => __DIR__ . '/../..' . '/src/Pro/Providers/Gmail/Api/OneTimeToken.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Api\\Response' => __DIR__ . '/../..' . '/src/Pro/Providers/Gmail/Api/Response.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Api\\SiteId' => __DIR__ . '/../..' . '/src/Pro/Providers/Gmail/Api/SiteId.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Auth' => __DIR__ . '/../..' . '/src/Pro/Providers/Gmail/Auth.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Mailer' => __DIR__ . '/../..' . '/src/Pro/Providers/Gmail/Mailer.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Options' => __DIR__ . '/../..' . '/src/Pro/Providers/Gmail/Options.php',
'WPMailSMTP\\Pro\\Providers\\Gmail\\Provider' => __DIR__ . '/../..' . '/src/Pro/Providers/Gmail/Provider.php',
'WPMailSMTP\\Pro\\Providers\\Outlook\\AttachmentsUploader' => __DIR__ . '/../..' . '/src/Pro/Providers/Outlook/AttachmentsUploader.php',
'WPMailSMTP\\Pro\\Providers\\Outlook\\Auth' => __DIR__ . '/../..' . '/src/Pro/Providers/Outlook/Auth.php',
'WPMailSMTP\\Pro\\Providers\\Outlook\\Mailer' => __DIR__ . '/../..' . '/src/Pro/Providers/Outlook/Mailer.php',

View File

@@ -1,9 +1,9 @@
<?php return array(
'root' => array(
'name' => 'awesomemotive/wp-mail-smtp',
'pretty_version' => 'dev-3.11.0-release',
'version' => 'dev-3.11.0-release',
'reference' => 'f39d2431cd40a7ad09725608f5e33c516a2b293b',
'pretty_version' => 'dev-3.10.0-release',
'version' => 'dev-3.10.0-release',
'reference' => 'c75f7c8a753c1719b4a60018a317e0f1c9f6b307',
'type' => 'wordpress-plugin',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -11,9 +11,9 @@
),
'versions' => array(
'awesomemotive/wp-mail-smtp' => array(
'pretty_version' => 'dev-3.11.0-release',
'version' => 'dev-3.11.0-release',
'reference' => 'f39d2431cd40a7ad09725608f5e33c516a2b293b',
'pretty_version' => 'dev-3.10.0-release',
'version' => 'dev-3.10.0-release',
'reference' => 'c75f7c8a753c1719b4a60018a317e0f1c9f6b307',
'type' => 'wordpress-plugin',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),

View File

@@ -1,7 +1,7 @@
<?php
/**
* Plugin Name: WP Mail SMTP
* Version: 3.11.0
* Version: 3.10.0
* Requires at least: 5.2
* Requires PHP: 7.2
* Plugin URI: https://wpmailsmtp.com/
@@ -248,7 +248,7 @@ if ( ! function_exists( 'wp_mail_smtp_insecure_php_version_notice' ) ) {
}
if ( ! defined( 'WPMS_PLUGIN_VER' ) ) {
define( 'WPMS_PLUGIN_VER', '3.11.0' );
define( 'WPMS_PLUGIN_VER', '3.10.0' );
}
if ( ! defined( 'WPMS_PHP_VER' ) ) {
define( 'WPMS_PHP_VER', '7.2' );