File "Helpers.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/easy-wp-smtp/src/Helpers/Helpers.php
File
size: 3.42 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
namespace EasyWPSMTP\Helpers;
use EasyWPSMTP\Options;
use EasyWPSMTP\WP;
use WP_Error;
/**
* Class with all the misc helper functions that don't belong elsewhere.
*
* @since 2.0.0
*/
class Helpers {
/**
* Check if the current active mailer has email send confirmation functionality.
*
* @since 2.1.0
*
* @return bool
*/
public static function mailer_without_send_confirmation() {
return ! in_array(
Options::init()->get( 'mail', 'mailer' ),
[
'sendlayer',
'smtpcom',
'sendinblue',
'mailgun',
],
true
);
}
/**
* Include mbstring polyfill.
*
* @since 2.0.0
*/
public static function include_mbstring_polyfill() {
static $included = false;
if ( $included === true ) {
return;
}
require_once easy_wp_smtp()->plugin_path . '/vendor_prefixed/symfony/polyfill-mbstring/Mbstring.php';
require_once easy_wp_smtp()->plugin_path . '/vendor_prefixed/symfony/polyfill-mbstring/bootstrap.php';
$included = true;
}
/**
* Test if the REST API is accessible.
*
* @since 2.0.0
*
* @return true|\WP_Error
*/
public static function test_rest_availability() {
$headers = [
'Cache-Control' => 'no-cache',
];
/** This filter is documented in wp-includes/class-wp-http-streams.php */
$sslverify = apply_filters( 'https_local_ssl_verify', false );
$url = rest_url( 'easy-wp-smtp/v1' );
$response = wp_remote_get(
$url,
[
'headers' => $headers,
'sslverify' => $sslverify,
]
);
if ( is_wp_error( $response ) ) {
return $response;
} elseif ( wp_remote_retrieve_response_code( $response ) !== 200 ) {
return new WP_Error( wp_remote_retrieve_response_code( $response ), wp_remote_retrieve_body( $response ) );
}
return true;
}
/**
* Get string size in bytes.
*
* @since 2.0.0
*
* @param string $str String.
*
* @return int
*/
public static function strsize( $str ) {
if ( ! function_exists( 'mb_strlen' ) ) {
self::include_mbstring_polyfill();
}
return mb_strlen( $str, '8bit' );
}
/**
* Format error message.
*
* @since 2.0.0
*
* @param string $message Error message.
* @param string $code Error code.
* @param string $description Error description.
*
* @return string
*/
public static function format_error_message( $message, $code = '', $description = '' ) {
$error_text = '';
if ( ! empty( $code ) ) {
$error_text .= $code . ': ';
}
if ( ! is_string( $message ) ) {
$error_text .= wp_json_encode( $message );
} else {
$error_text .= $message;
}
if ( ! empty( $description ) ) {
$error_text .= WP::EOL . $description;
}
return $error_text;
}
/**
* Whether it's allowed to send emails from the website's current domain.
*
* @since 2.0.0
*
* @return bool
*/
public static function is_domain_blocked() {
$options = Options::init();
$check_domain = $options->get( 'general', 'domain_check' );
$allowed_domains = $options->get( 'general', 'domain_check_allowed_domains' );
if ( $check_domain && ! empty( $allowed_domains ) ) {
$allowed_domains = explode( ',', $allowed_domains );
$site_domain = wp_parse_url( get_site_url(), PHP_URL_HOST );
$match_found = false;
foreach ( $allowed_domains as $domain ) {
if ( strtolower( trim( $domain ) ) === strtolower( trim( $site_domain ) ) ) {
$match_found = true;
break;
}
}
if ( ! $match_found ) {
return true;
}
}
return false;
}
}