sanitize_text_field($_POST['campaign_name']), 'post_type' => 'campaign', 'post_status' => 'publish' ); $calculate_timeline = isset($_POST['calculate_timeline']) ? true : false; if (isset($_POST['post_id']) && !empty($_POST['post_id'])) { // log_to_file("Campaign Edit template - Updating campaign"); $post_data['ID'] = intval($_POST['post_id']); $post_id = wp_update_post($post_data); $new_post = false; $message = ['status' => 'success', 'message' => 'Campaign updated successfully.']; $campaign_tracking_id = get_post_meta($post_id, 'campaign_tracking_id', true); // log_to_file("Campaign Edit template - Campaign Tracking ID: $campaign_tracking_id"); if ($campaign_tracking_id == '') { RL_MailWarmer_Campaign_Helper::generate_campaign_tracking_id($post_id); } } else { // log_to_file("Campaign Edit template - Creating new campaign"); $post_id = wp_insert_post($post_data); RL_MailWarmer_Campaign_Helper::generate_campaign_tracking_id($post_id); $message = ['status' => 'success', 'message' => 'Campaign added successfully.']; } if (!is_wp_error($post_id)) { // log_to_file("Campaign Edit template - Create/update successful!"); $campaign_enabled = isset($_POST['enabled']) ? true : false; // log_to_file("Campaign Edit template - 1 Campaign Enabled: {$campaign_enabled} New Post: {$new_post}"); // var_dump($campaign_enabled); update_post_meta($post_id, 'enabled', $campaign_enabled); $acf_fields = [ 'domain_id', // 'enabled', 'email_accounts', // 'num_additional_emails', 'start_date', 'warmup_period', 'starting_volume', 'target_volume', 'weekend_reduction_factor', 'target_profession', 'target_profession_other', 'campaign_conversation_topics' ]; foreach ($acf_fields as $field) { if (isset($_POST[$field])) { // log_to_file("Campaign Edit template - Checking for $field in POST: ", $_POST[$field]); switch ($field) { case 'email_accounts': $campaign_email_accounts = $_POST[$field]; $is_limited = false; // Iterate through each email account ID foreach ($campaign_email_accounts as $account_id) { // Retrieve the 'limited_access' meta value for the current account ID $limited_access = get_post_meta($account_id, 'limited_access', true); // Check if 'limited_access' is true if ($limited_access === true || $limited_access === '1') { $is_limited = true; break; // Exit the loop early as we only need one true value } } // Update 'campaign_limited' for $post_id if any account is limited if ($is_limited) { update_post_meta($post_id, 'campaign_limited', true); } else { update_post_meta($post_id, 'campaign_limited', false); } // Update the field as usual update_field($field, $campaign_email_accounts, $post_id); break; case 'domain_id': // log_to_file("Campaign Edit template - Found domain in POST", $_POST['domain_id']); try { update_field('domain', $_POST['domain_id'], $post_id); } catch (Exception $e) { throw new Exception(__('fetch_dns_records - Campaign Edit template: Unable to update domain field for Campaign', 'rl-mailwarmer') . $e->getMessage()); } break; default: update_field($field, sanitize_text_field($_POST[$field]), $post_id); break; } } } // log_to_file("Campaign Edit template - Setting campaign owner_id to $current_user_id"); update_post_meta($post_id, 'owner_id', $current_user_id); // Calculate a timeline if ($new_post || $calculate_timeline) { RL_MailWarmer_DB_Helper::delete_all_conversations_messages($post_id); RL_MailWarmer_Campaign_Helper::calculate_campaign_timeline($post_id); RL_MailWarmer_Campaign_Helper::fill_campaign_timeline($post_id); // log_to_file("Campaign Edit template - Campaign timeline: ", $campaign_timeline); } } else { $message = ['status' => 'error', 'message' => 'Error: ' . $post_id->get_error_message()]; } if ( !(isset($_POST['stay_on_page']) && ($_POST['stay_on_page'] === 'on')) ) { // log_to_file("Domain Edit template - stay_on_page not set; redirecting!"); wp_redirect( get_permalink( $post_id ) ); exit; } } else { // log_to_file("Campaign Edit template - Post request not set"); } // Get existing post data if editing if (isset($_GET['edit'])) { $post_id = intval($_GET['edit']); $new_post = false; $campaign_enabled = get_post_meta($post_id, 'enabled') ? get_post_meta($post_id, 'enabled', true) : false; // log_to_file("Campaign Edit template - 2 Campaign Enabled: {$campaign_enabled} New Post: {$new_post}"); // var_dump($campaign_enabled); // update_post_meta($post_id, 'enabled', $campaign_enabled); } else { $post_id = 0; } $campaign_data = [ 'campaign_name' => '', // 'enabled' => '', 'domain_id' => '', 'email_accounts' => [], 'num_additional_emails' => '', 'start_date' => '', 'warmup_period' => '8', 'starting_volume' => '5', 'target_volume' => '50', 'weekend_reduction_factor' => 25, 'target_profession' => '', 'target_profession_other' => '', 'campaign_conversation_topics' => '' ]; if ($post_id > 0) { $post_item = get_post($post_id); if ($post_item && $post_item->post_type === 'campaign') { $campaign_data['campaign_name'] = $post_item->post_title; foreach ($campaign_data as $key => $value) { if ($key !== 'campaign_name') { switch ($key) { case 'domain_id': $domain_id = get_field('domain', $post_id) ? get_field('domain', $post_id) : ''; if ($domain_id) { $campaign_data[$key] = $domain_id->ID; } break; case 'email_accounts': $email_accounts = get_field($key, $post_id) ? get_field($key, $post_id) : ''; // log_to_file("Campaign Edit template - Email accounts: ", $email_accounts); $campaign_data[$key] = $email_accounts; break; case 'start_date': $start_date = get_field($key, $post_id) ? get_field($key, $post_id) : ''; $campaign_data[$key] = date('Y-m-d', strtotime($start_date)); break; default: $campaign_data[$key] = get_field($key, $post_id); break; } // if ($key === 'domain_id') { // $domain_id = get_field('domain', $post_id); // $campaign_data[$key] = $domain_id->ID; // } else { // $campaign_data[$key] = get_field($key, $post_id); // } } } } } log_to_file("Campaign Edit template - Campaign data: ", $campaign_data); // Get domains for current user $domains = get_posts([ 'orderby' => 'title', 'order' => 'ASC', 'post_type' => 'domain', 'posts_per_page' => -1, 'meta_query' => [ [ 'key' => 'owner_id', 'value' => $current_user_id ] ] ]); // log_to_file("Campaign Edit template - Domains: ", $domains); // Get the list of default professions $professions = rl_get_textarea_meta_as_array('option', 'default_profession_pool'); // log_to_file("Campaign Edit template - Professions: ", $professions); // log_to_file("Campaign Edit template - 3 Campaign Enabled: {$campaign_enabled} New Post: {$new_post}"); get_header(); ?>
>
>
>
>

View Campaign
class=""> Disabled campaigns will not send any mail until they are re-enabled
% Reduce traffic on weekend & holidays by this percentage
class=""> This will delete any pending messages and recreate the timeline based on the above fields