Server IP : 162.0.217.223 / Your IP : 216.73.216.153 Web Server : LiteSpeed System : Linux premium269.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : mypckeys ( 1539) PHP Version : 8.1.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/mypckeys/yeslicense.org/wp-content/plugins/yaymail/src/ |
Upload File : |
<?php namespace YayMail; use YayMail\Utils\Helpers; use YayMail\Utils\SingletonTrait; /** * Handles WooCommerce email preview * * @method static WooHandler get_instance() */ class WooHandler { use SingletonTrait; protected function __construct() { add_filter( 'woocommerce_prepare_email_for_preview', [ $this, 'display_preview_notice' ] ); add_filter( 'woocommerce_mail_content', [ $this, 'handle_default_preview_content' ] ); // Add settings to WooCommerce email options section add_filter( 'woocommerce_get_settings_email', [ $this, 'add_settings' ], 10, 2 ); add_filter( 'woocommerce_get_settings_advanced', function( $settings ) { foreach ( $settings as $index => $setting ) { if ( $setting['id'] === 'woocommerce_feature_block_email_editor_enabled' ) { $introduction_text = sprintf( __( 'You can customize WooCommerce emails with <a href="%s" target="_blank">YayMail - WooCommerce Email Customizer</a>', 'yaymail' ), esc_url( admin_url( 'admin.php?page=yaymail-settings#' ), 'yaymail' ) ); $settings[ $index ]['desc'] .= '<br/><br/>' . $introduction_text . '<br/>'; } } return $settings; } ); } public function display_preview_notice( $email ) { if ( ! ( isset( $_REQUEST['_wpnonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ), 'preview-mail' ) ) ) { return $email; } if ( isset( $_GET['preview_woocommerce_mail'] ) && ! Helpers::is_true( sanitize_text_field( wp_unslash( $_GET['preview_woocommerce_mail'] ) ) ) ) { return $email; } if ( isset( $_GET['rest_route'] ) && $_GET['rest_route'] === '/wc-admin-email/settings/email/send-preview' ) { return $email; } if ( ! isset( $email->id ) ) { return $email; } $email_id = $email->id; $yaymail_template = new YayMailTemplate( $email_id ); if ( ! $yaymail_template->is_exists() ) { return $email; } if ( ! $yaymail_template->is_enabled() ) { return $email; } add_filter( 'yaymail_previewing_template_is_yaymail_template', '__return_true' ); ob_start(); ?> <div style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; max-width: 600px; margin: 20px auto; padding: 20px; text-align: center;"> <div style="background-color: #f7f4fa; padding: 12px 12px 24px 12px; border-radius: 4px; margin-bottom: 20px;"> <h2 style="color: <?php echo esc_attr( YAYMAIL_COLOR_WC_DEFAULT ); ?>; font-size: 24px; margin-bottom: 8px;"><?php esc_html_e( 'YayMail Template Preview', 'yaymail' ); ?></h2> <p style="color:rgb(110, 110, 110); font-size: 14px; margin-bottom: 24px;"><?php esc_html_e( 'This is one of your WooCommerce email templates customized with YayMail. You can modify its colors, layout, and content in the YayMail editor.', 'yaymail' ); ?></p> <a href="<?php echo esc_url( admin_url( 'admin.php?page=yaymail-settings#/customizer/?template=' . $email_id ) ); ?>" target="_blank" style="display: inline-block; background-color: <?php echo esc_attr( YAYMAIL_COLOR_WC_DEFAULT ); ?>; color: #fff; font-size: 12px; padding: 8px 12px; border-radius: 3px; text-decoration: none;"><?php esc_html_e( 'Customized Template', 'yaymail' ); ?></a> </div> </div> <?php $content = ob_get_clean(); yaymail_kses_post_e( $content ); return $email; } public function handle_default_preview_content( $content ) { if ( ! ( isset( $_REQUEST['_wpnonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ), 'preview-mail' ) ) ) { return $content; } if ( isset( $_GET['preview_woocommerce_mail'] ) && ! Helpers::is_true( sanitize_text_field( wp_unslash( $_GET['preview_woocommerce_mail'] ) ) ) ) { return $content; } if ( isset( $_GET['rest_route'] ) && $_GET['rest_route'] === '/wc-admin-email/settings/email/send-preview' ) { return $content; } if ( apply_filters( 'yaymail_previewing_template_is_yaymail_template', false ) ) { return ''; } return $content; } /** * Add YayMail settings to WooCommerce email options. * * @param array $settings WooCommerce email settings. * @param string $current_section Current settings section. * @return array Modified settings. */ public function add_settings( $settings, $current_section ) { // Only add to the email options section (empty section) if ( $current_section !== '' ) { return $settings; } $yaymail_settings = [ [ 'title' => __( 'WooCommerce Email Designer', 'yaymail' ), 'type' => 'title', 'id' => 'yaymail_email_designer', ], [ 'title' => __( 'Customize WooCommerce Emails', 'yaymail' ), 'desc' => '', 'id' => 'woocommerce_customizer_emails', 'type' => 'yaymail_button', 'desc_tip' => true, ], [ 'type' => 'sectionend', 'id' => 'yaymail_email_designer', ], ]; // Add custom button HTML add_action( 'woocommerce_admin_field_yaymail_button', [ $this, 'output_button' ] ); $settings = array_merge( $settings, $yaymail_settings ); return $settings; } /** * Output the custom button HTML * * @param array $value Button field settings. */ public function output_button( $value ) { ?> <tr valign="top"> <th scope="row" class="titledesc"> <label for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo esc_html( $value['title'] ); ?></label> </th> <td class="forminp forminp-<?php echo esc_attr( sanitize_title( $value['type'] ) ); ?>"> <button type="button" class="button" id="<?php echo esc_attr( $value['id'] ); ?>" onclick="window.open('<?php echo esc_url( admin_url( 'admin.php?page=yaymail-settings' ) ); ?>', '_blank')" > <?php esc_html_e( 'Open YayMail', 'yaymail' ); ?> </button> <p class="description"><?php esc_html_e( 'Make Woocommerce Emails match your brand. ', 'yaymail' ); ?><a href="https://yaycommerce.com/yaymail-woocommerce-email-customizer/" target="_blank"><?php esc_html_e( 'YayMail - WooCommerce Email Customizer', 'yaymail' ); ?></a> <?php esc_html_e( ' plugin by ', 'yaymail' ); ?> <a href="https://yaycommerce.com/" target="_blank"><?php esc_html_e( 'YayCommerce', 'yaymail' ); ?></a>.</p> </td> </tr> <?php } }