is_pro() ) { // Add scheduler data add_filter( 'ig_es_broadcast_data', array( &$this, 'es_add_broadcast_scheduler_data' ), 10, 2 ); } // Check campaign wise open tracking is enabled. add_filter( 'ig_es_track_open', array( $this, 'is_open_tracking_enabled' ), 10, 4 ); add_action( 'ig_es_show_' . IG_CAMPAIGN_TYPE_NEWSLETTER . '_campaign_summary_action_buttons', array( $this, 'show_summary_actions_buttons' ) ); //add_action( 'ig_es_' . IG_CAMPAIGN_TYPE_NEWSLETTER . '_default_subject', array( $this, 'get_post_notification_default_subject' ) ); add_action( 'ig_es_' . IG_CAMPAIGN_TYPE_NEWSLETTER . '_default_content', array( $this, 'get_newsletter_default_content' ) ); } public static function set_screen( $status, $option, $value ) { return $value; } /** * Method to process broadcast submission. * * @since 4.4.7 */ public function process_broadcast_submission() { global $wpdb; $submitted = ig_es_get_request_data( 'ig_es_broadcast_submitted' ); $broadcast_data = ig_es_get_request_data( 'broadcast_data', array(), false ); if ( 'submitted' === $submitted ) { $broadcast_nonce = ig_es_get_request_data( 'ig_es_broadcast_nonce' ); // Verify nonce. if ( wp_verify_nonce( $broadcast_nonce, 'ig-es-broadcast-nonce' ) ) { $list_id = ! empty( $broadcast_data['list_ids'] ) ? $broadcast_data['list_ids'] : ''; $template_id = ! empty( $broadcast_data['template_id'] ) ? $broadcast_data['template_id'] : ''; $subject = ! empty( $broadcast_data['subject'] ) ? $broadcast_data['subject'] : ''; // Check if user has added required data for creating broadcast. if ( ! empty( $broadcast_data['subject'] ) && ! empty( $broadcast_data['body'] ) && ! empty( $subject ) ) { $broadcast_data['base_template_id'] = $template_id; $broadcast_data['list_ids'] = $list_id; $broadcast_data['status'] = IG_ES_CAMPAIGN_STATUS_SCHEDULED; $meta = ! empty( $broadcast_data['meta'] ) ? $broadcast_data['meta'] : array(); $meta['scheduling_option'] = ! empty( $broadcast_data['scheduling_option'] ) ? $broadcast_data['scheduling_option'] : 'schedule_now'; $meta['es_schedule_date'] = ! empty( $broadcast_data['es_schedule_date'] ) ? $broadcast_data['es_schedule_date'] : ''; $meta['es_schedule_time'] = ! empty( $broadcast_data['es_schedule_time'] ) ? $broadcast_data['es_schedule_time'] : ''; $meta['pre_header'] = ! empty( $broadcast_data['pre_header'] ) ? $broadcast_data['pre_header'] : ''; if ( ! empty( $meta['list_conditions'] ) ) { $meta['list_conditions'] = IG_ES_Campaign_Rules::remove_empty_conditions( $meta['list_conditions'] ); } $broadcast_data['meta'] = maybe_serialize( $meta ); self::es_send_email_callback( $broadcast_data ); $campaign_url = admin_url( 'admin.php?page=es_campaigns&action=broadcast_created' ); wp_safe_redirect( $campaign_url ); exit(); } } else { $message = __( 'Sorry, you are not allowed to add/edit broadcast.', 'email-subscribers' ); ES_Common::show_message( $message, 'error' ); } } } public function es_newsletters_settings_callback() { global $wpdb; $broadcast_id = ig_es_get_request_data( 'list' ); $submitted = ig_es_get_request_data( 'ig_es_broadcast_submitted' ); $broadcast_data = ig_es_get_request_data( 'broadcast_data', array(), false ); $message_data = array(); if ( 'submitted' === $submitted ) { // If form is submitted then broadcast id is sent in $broadcast_data array. $broadcast_id = ! empty( $broadcast_data['id'] ) ? $broadcast_data['id'] : ''; $subject = ! empty( $broadcast_data['subject'] ) ? $broadcast_data['subject'] : ''; if ( empty( $broadcast_data['subject'] ) ) { $message = __( 'Please add a broadcast subject.', 'email-subscribers' ); $message_data = array( 'message' => $message, 'type' => 'error', ); } elseif ( empty( $broadcast_data['body'] ) ) { $message = __( 'Please add message body or select template', 'email-subscribers' ); $message_data = array( 'message' => $message, 'type' => 'error', ); } elseif ( empty( $subject ) ) { $message = __( 'Please add the subject', 'email-subscribers' ); $message_data = array( 'message' => $message, 'type' => 'error', ); } } if ( ! empty( $broadcast_id ) ) { $broadcast_query = $wpdb->prepare( ' id = %d LIMIT 0, 1', $broadcast_id ); $broadcasts = ES()->campaigns_db->get_by_conditions( $broadcast_query ); $broadcast = array_shift( $broadcasts ); $broadcast_data = array( 'id' => $broadcast['id'], 'name' => $broadcast['name'], 'subject' => $broadcast['subject'], 'from_name' => $broadcast['from_name'], 'from_email' => $broadcast['from_email'], 'reply_to_email' => $broadcast['reply_to_email'], 'body' => $broadcast['body'], 'list_ids' => $broadcast['list_ids'], 'template_id' => $broadcast['base_template_id'], 'status' => $broadcast['status'], 'meta' => maybe_unserialize( $broadcast['meta'] ), ); } $this->prepare_newsletter_settings_form( $broadcast_data, $message_data ); } /** * Method to display newsletter setting form * * @param array $broadcast_data Posted broadcast data * * @since 4.4.2 Added $broadcast_data param */ public function prepare_newsletter_settings_form( $broadcast_data = array(), $message_data = array() ) { $template_id = ! empty( $broadcast_data['template_id'] ) ? $broadcast_data['template_id'] : ''; $list_ids = ! empty( $broadcast_data['list_ids'] ) ? $broadcast_data['list_ids'] : ''; $templates = ES_Common::prepare_templates_dropdown_options( 'newsletter', $template_id ); $from_email = ES_Common::get_ig_option( 'from_email' ); $broadcast_id = ! empty( $broadcast_data['id'] ) ? $broadcast_data['id'] : 0; $broadcast_from_name = ! empty( $broadcast_data['from_name'] ) ? $broadcast_data['from_name'] : get_option( 'ig_es_from_name' ); $broadcast_email = ! empty( $broadcast_data['from_email'] ) ? $broadcast_data['from_email'] : $from_email; $broadcast_reply_to = ! empty( $broadcast_data['reply_to_email'] ) ? $broadcast_data['reply_to_email'] : $from_email; $broadcast_subject = ! empty( $broadcast_data['subject'] ) ? $broadcast_data['subject'] : ''; $broadcast_status = ! empty( $broadcast_data['status'] ) ? (int) $broadcast_data['status'] : 0; // Flag to check if broadcast is being send or already sent. $is_broadcast_processing = false; if ( ! empty( $broadcast_status ) ) { $broadcast_allowed_edit_statuses = array( IG_ES_CAMPAIGN_STATUS_ACTIVE, IG_ES_CAMPAIGN_STATUS_IN_ACTIVE, IG_ES_CAMPAIGN_STATUS_SCHEDULED, ); if ( ! in_array( $broadcast_status, $broadcast_allowed_edit_statuses ) ) { $is_broadcast_processing = true; } $scheduling_disabled_message = ''; if ( IG_ES_CAMPAIGN_STATUS_QUEUED === $broadcast_status ) { $scheduling_disabled_message = __( 'Scheduling is disabled for this broadcast since it is being sent.', 'email-subscribers' ); } elseif ( IG_ES_CAMPAIGN_STATUS_FINISHED === $broadcast_status ) { $scheduling_disabled_message = __( 'Scheduling is disabled for this broadcast since it has been sent already.', 'email-subscribers' ); } if ( ! empty( $scheduling_disabled_message ) ) { $message_data = array( 'message' => $scheduling_disabled_message, 'type' => 'error', ); } } $allowedtags = ig_es_allowed_html_tags_in_esc(); ?>