Merged in feature/from-pantheon (pull request #16)
code from pantheon * code from pantheon
This commit is contained in:
281
wp/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/VersusTab.php
Normal file
281
wp/wp-content/plugins/wp-mail-smtp/src/Admin/Pages/VersusTab.php
Normal file
@@ -0,0 +1,281 @@
|
||||
<?php
|
||||
|
||||
namespace WPMailSMTP\Admin\Pages;
|
||||
|
||||
use WPMailSMTP\Admin\PageAbstract;
|
||||
|
||||
/**
|
||||
* Versus tab.
|
||||
*
|
||||
* @since 2.9.0
|
||||
*/
|
||||
class VersusTab extends PageAbstract {
|
||||
|
||||
/**
|
||||
* Part of the slug of a tab.
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $slug = 'versus';
|
||||
|
||||
/**
|
||||
* Tab priority.
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $priority = 40;
|
||||
|
||||
/**
|
||||
* Link label of a tab.
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_label() {
|
||||
|
||||
return esc_html__( 'Lite vs Pro', 'wp-mail-smtp' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Title of a tab.
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_title() {
|
||||
|
||||
return $this->get_label();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tab content.
|
||||
*
|
||||
* @since 2.9.0
|
||||
*/
|
||||
public function display() {
|
||||
|
||||
$license = wp_mail_smtp()->get_license_type();
|
||||
?>
|
||||
|
||||
<div class="wp-mail-smtp-admin-about-section wp-mail-smtp-admin-about-section-squashed">
|
||||
<h1 class="centered">
|
||||
<strong>
|
||||
<?php
|
||||
printf(
|
||||
/* translators: %s - plugin current license type. */
|
||||
esc_html__( '%s vs Pro', 'wp-mail-smtp' ),
|
||||
esc_html( ucfirst( $license ) )
|
||||
);
|
||||
?>
|
||||
</strong>
|
||||
</h1>
|
||||
|
||||
<p class="centered <?php echo( $license === 'pro' ? 'hidden' : '' ); ?>">
|
||||
<?php esc_html_e( 'Get the most out of WP Mail SMTP by upgrading to Pro and unlocking all of the powerful features.', 'wp-mail-smtp' ); ?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="wp-mail-smtp-admin-about-section wp-mail-smtp-admin-about-section-squashed wp-mail-smtp-admin-about-section-hero wp-mail-smtp-admin-about-section-table">
|
||||
|
||||
<div class="wp-mail-smtp-admin-about-section-hero-main wp-mail-smtp-admin-columns">
|
||||
<div class="wp-mail-smtp-admin-column-33">
|
||||
<h3 class="no-margin">
|
||||
<?php esc_html_e( 'Feature', 'wp-mail-smtp' ); ?>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="wp-mail-smtp-admin-column-33">
|
||||
<h3 class="no-margin">
|
||||
<?php echo esc_html( ucfirst( $license ) ); ?>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="wp-mail-smtp-admin-column-33">
|
||||
<h3 class="no-margin">
|
||||
<?php esc_html_e( 'Pro', 'wp-mail-smtp' ); ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wp-mail-smtp-admin-about-section-hero-extra no-padding wp-mail-smtp-admin-columns">
|
||||
|
||||
<table>
|
||||
<?php
|
||||
foreach ( $this->get_license_features() as $slug => $name ) {
|
||||
$current = $this->get_license_data( $slug, $license );
|
||||
$pro = $this->get_license_data( $slug, 'pro' );
|
||||
?>
|
||||
<tr class="wp-mail-smtp-admin-columns">
|
||||
<td class="wp-mail-smtp-admin-column-33">
|
||||
<p><?php echo esc_html( $name ); ?></p>
|
||||
</td>
|
||||
<td class="wp-mail-smtp-admin-column-33">
|
||||
<p class="features-<?php echo esc_attr( $current['status'] ); ?>">
|
||||
<?php echo implode( '<br>', $current['text'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
</p>
|
||||
</td>
|
||||
<td class="wp-mail-smtp-admin-column-33">
|
||||
<p class="features-full">
|
||||
<?php echo implode( '<br>', $pro['text'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php if ( 'lite' === $license ) : ?>
|
||||
<div class="wp-mail-smtp-admin-about-section wp-mail-smtp-admin-about-section-hero">
|
||||
<div class="wp-mail-smtp-admin-about-section-hero-main no-border">
|
||||
<h3 class="call-to-action centered">
|
||||
<a href="<?php echo esc_url( wp_mail_smtp()->get_upgrade_link( 'lite-vs-pro' ) ); ?>" target="_blank" rel="noopener noreferrer">
|
||||
<?php esc_html_e( 'Get WP Mail SMTP Pro Today and Unlock all of these Powerful Features', 'wp-mail-smtp' ); ?>
|
||||
</a>
|
||||
</h3>
|
||||
|
||||
<p class="centered">
|
||||
<?php
|
||||
printf(
|
||||
wp_kses( /* Translators: %s - discount value $50. */
|
||||
__( 'Bonus: WP Mail SMTP Lite users get <span class="price-off">%s off regular price</span>, automatically applied at checkout.', 'wp-mail-smtp' ),
|
||||
[
|
||||
'span' => [
|
||||
'class' => [],
|
||||
],
|
||||
]
|
||||
),
|
||||
'$50'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the list of features for all licenses.
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function get_license_features() {
|
||||
|
||||
return [
|
||||
'log' => esc_html__( 'Email Log', 'wp-mail-smtp' ),
|
||||
'control' => esc_html__( 'Email Controls', 'wp-mail-smtp' ),
|
||||
'mailers' => esc_html__( 'Mailer Options', 'wp-mail-smtp' ),
|
||||
'multisite' => esc_html__( 'WordPress Multisite', 'wp-mail-smtp' ),
|
||||
'support' => esc_html__( 'Customer Support', 'wp-mail-smtp' ),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the array of data that compared the license data.
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @param string $feature Feature name.
|
||||
* @param string $license License type to get data for.
|
||||
*
|
||||
* @return array|false
|
||||
*/
|
||||
private function get_license_data( $feature, $license ) {
|
||||
|
||||
$data = [
|
||||
'log' => [
|
||||
'lite' => [
|
||||
'status' => 'none',
|
||||
'text' => [
|
||||
'<strong>' . esc_html__( 'Emails are not logged', 'wp-mail-smtp' ) . '</strong>',
|
||||
],
|
||||
],
|
||||
'pro' => [
|
||||
'status' => 'full',
|
||||
'text' => [
|
||||
'<strong>' . esc_html__( 'Access to all Email Logging options right inside WordPress', 'wp-mail-smtp' ) . '</strong>',
|
||||
],
|
||||
],
|
||||
],
|
||||
'control' => [
|
||||
'lite' => [
|
||||
'status' => 'none',
|
||||
'text' => [
|
||||
'<strong>' . esc_html__( 'No controls over whether default WordPress emails are sent', 'wp-mail-smtp' ) . '</strong>',
|
||||
],
|
||||
],
|
||||
'pro' => [
|
||||
'status' => 'full',
|
||||
'text' => [
|
||||
'<strong>' . esc_html__( 'Complete Email Controls management for most default WordPress emails', 'wp-mail-smtp' ) . '</strong>',
|
||||
],
|
||||
],
|
||||
],
|
||||
'mailers' => [
|
||||
'lite' => [
|
||||
'status' => 'none',
|
||||
'text' => [
|
||||
'<strong>' . esc_html__( 'Limited Mailers', 'wp-mail-smtp' ) . '</strong><br>' . esc_html__( 'Access is limited to standard mailer options only', 'wp-mail-smtp' ),
|
||||
],
|
||||
],
|
||||
'pro' => [
|
||||
'status' => 'full',
|
||||
'text' => [
|
||||
'<strong>' . esc_html__( 'Additional Mailer Options', 'wp-mail-smtp' ) . '</strong><br>' . esc_html__( 'Microsoft Outlook (with Office365 support), Amazon SES and Zoho Mail', 'wp-mail-smtp' ),
|
||||
],
|
||||
],
|
||||
],
|
||||
'multisite' => [
|
||||
'lite' => [
|
||||
'status' => 'none',
|
||||
'text' => [
|
||||
'<strong>' . esc_html__( 'No Global Network Settings', 'wp-mail-smtp' ) . '</strong>',
|
||||
],
|
||||
],
|
||||
'pro' => [
|
||||
'status' => 'full',
|
||||
'text' => [
|
||||
'<strong>' . esc_html__( 'All Global Network Settings', 'wp-mail-smtp' ) . '</strong><br>' . esc_html__( 'Optionally configure settings at the network level or manage separately for each subsite', 'wp-mail-smtp' ),
|
||||
],
|
||||
],
|
||||
],
|
||||
'support' => [
|
||||
'lite' => [
|
||||
'status' => 'none',
|
||||
'text' => [
|
||||
'<strong>' . esc_html__( 'Limited Support', 'wp-mail-smtp' ) . '</strong>',
|
||||
],
|
||||
],
|
||||
'pro' => [
|
||||
'status' => 'full',
|
||||
'text' => [
|
||||
'<strong>' . esc_html__( 'Priority Support', 'wp-mail-smtp' ) . '</strong>',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
// Wrong feature?
|
||||
if ( ! isset( $data[ $feature ] ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Wrong license type?
|
||||
if ( ! isset( $data[ $feature ][ $license ] ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $data[ $feature ][ $license ];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user