Files
torebki-fabiola.pl/wp-content/plugins/email-subscribers/lite/includes/classes/class-es-tools.php
2026-03-05 13:07:40 +01:00

108 lines
3.3 KiB
PHP

<?php
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* The admin-specific functionality of the plugin.
*
* Admin Settings
*
* @package Email_Subscribers
* @subpackage Email_Subscribers/admin
*/
class ES_Tools {
// class instance
public static $instance;
public function __construct() {
// Allow only to send test email to user who have Settings & Campaigns permission
$accessible_sub_menus = ES_Common::ig_es_get_accessible_sub_menus();
if ( defined( 'DOING_AJAX' ) && ( in_array( 'settings', $accessible_sub_menus ) || in_array( 'campaigns', $accessible_sub_menus ) ) ) {
add_action( 'wp_ajax_es_send_test_email', array( $this, 'send_test_email' ) );
}
}
/**
* Send Test Email
*
* @since 4.0.0
* @since 4.3.2 Call ES()->mailer->send_test_email() method to send test email
*/
public function send_test_email() {
check_ajax_referer( 'ig-es-admin-ajax-nonce', 'security' );
$response = array();
$email = sanitize_email( ig_es_get_request_data( 'es_test_email' ) );
$campaign_id = ig_es_get_data( $_POST, 'campaign_id', 0, true );
$campaign_type = ig_es_get_data( $_POST, 'campaign_type', '', true );
$template_id = ig_es_get_data( $_POST, 'template_id', 0, true );
$subject = ig_es_get_data( $_POST, 'subject', '', true );
$content = ig_es_get_request_data( 'content', '', false );
$attachments = ig_es_get_data( $_POST, 'attachments', array(), true );
$preheader = ig_es_get_data( $_POST, 'preheader', array(), true );
if ( ! empty( $email ) ) {
$merge_tags = array( 'attachments' => $attachments );
if ( ! empty( $campaign_id ) ) {
$campaign_data = array(
'id' => $campaign_id,
'type' => $campaign_type,
'base_template_id' => $template_id,
'subject' => $subject,
'body' => $content,
);
if ( IG_CAMPAIGN_TYPE_POST_NOTIFICATION === $campaign_type ) {
$campaign_data = ES_Campaign_Admin::replace_post_notification_merge_tags_with_sample_post( $campaign_data );
} elseif ( IG_CAMPAIGN_TYPE_POST_DIGEST === $campaign_type ) {
$campaign_data = ES_Campaign_Admin::replace_post_digest_merge_tags_with_sample_posts( $campaign_data );
}
$merge_tags['campaign_id'] = $campaign_id;
$merge_tags['preheader'] = $preheader;
$subject = $campaign_data['subject'];
$content = $campaign_data['body'];
}
$content = ES_Common::es_process_template_body( $content, $template_id, $campaign_id );
$response = ES()->mailer->send_test_email( $email, $subject, $content, $merge_tags );
if ( $response && 'SUCCESS' === $response['status'] ) {
$response['message'] = __( 'Email has been sent. Please check your inbox', 'email-subscribers' );
} else {
$can_promote_ess = ES_Service_Email_Sending::can_promote_ess();
if ( $can_promote_ess ) {
$promotion_message_html = ES_Service_Email_Sending::get_ess_promotion_message_html();
if ( is_array( $response['message'] ) ) {
$response['message'][] = $promotion_message_html;
} else {
$response['message'] .= $promotion_message_html;
}
}
}
}
echo json_encode( $response );
exit;
}
public static function get_instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
}