function appthemes_bank_transfer_pending_email($post) { $content = ''; $content .= html('p', __('A new order is waiting to be processed. Once you recieve payment, you should mark the order as completed.', APP_TD)); $order_link = html_link(get_edit_post_link($post), __('Review this order', APP_TD)); $all_orders = html_link(admin_url('edit.php?post_status=tr_pending&post_type=transaction'), __('review all pending orders', APP_TD)); // translators: <Single Order Link> or <Link to All Orders> $content .= html('p', sprintf(__('%1$s or %2$s', APP_TD), $order_link, $all_orders)); $subject = sprintf(__('[%1$s] Pending Order #%2$d', APP_TD), get_bloginfo('name'), $post->ID); if (!function_exists('appthemes_send_email')) { return false; } $email = array('to' => get_option('admin_email'), 'subject' => $subject, 'message' => $content); $email = apply_filters('appthemes_email_admin_bt_pending', $email, $post); appthemes_send_email($email['to'], $email['subject'], $email['message']); }
/** * Sends notification to admin * * @param object $report * * @return void */ public static function notify_admin($report) { $options = appthemes_load_reports_options(); if (!$options->get(array('reports', 'send_email'))) { return; } // notify only once per post about report $reports = appthemes_get_post_reports($report->get_post_ID()); if (count($reports->reports) > 1) { return; } $emails = apply_filters('comment_notification_recipients', array(), $report->get_id()); $subject = apply_filters('comment_notification_subject', '', $report->get_id()); $notify_message = apply_filters('comment_notification_text', '', $report->get_id()); foreach ($emails as $email) { appthemes_send_email($email, $subject, $notify_message); } }
/** * Sends email notification to admin if listing require moderation. * * @param object $post */ function cp_notify_admin_moderated_listing($post) { global $cp_options; if ($post->post_type != APP_POST_TYPE) { return; } if (!$cp_options->ad_edit || !$cp_options->moderate_edited_ads) { return; } // don't notify admin when he changing post status in wp-admin if (is_admin() && current_user_can('manage_options')) { return; } $blogname = wp_specialchars_decode(get_bloginfo('name'), ENT_QUOTES); $subject = sprintf(__('[%s] Ad listing awaiting your review', APP_TD), $blogname); $content = html('p', __('Dear Admin,', APP_TD)) . PHP_EOL; $content .= html('p', sprintf(__('Ad listing, "%s" has been edited and awaiting your review.', APP_TD), $post->post_title)) . PHP_EOL; $content .= html('p', sprintf(__('Please <a href="%s">review this listing</a>, and approve it.', APP_TD), get_permalink($post->ID))) . PHP_EOL; $email = array('to' => get_option('admin_email'), 'subject' => $subject, 'message' => $content); $email = apply_filters('cp_email_admin_moderated_listing', $email, $post); appthemes_send_email($email['to'], $email['subject'], $email['message']); }
function cp_membership_reminder_cron() { global $wpdb, $cp_options; if (!$cp_options->membership_ending_reminder_email) { return; } $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); $subject = sprintf(__('Membership Subscription Ending on %s', APP_TD), $blogname); $siteurl = home_url('/'); $days_before = $cp_options->membership_ending_reminder_days; $days_before = is_numeric($days_before) ? $days_before : 7; $timestamp = wp_next_scheduled('cp_send_membership_reminder'); $timestamp = $timestamp - 1 * 24 * 60 * 60 + get_option('gmt_offset') * 3600; // minus 1 day to get current schedule time, plus GMT offset $date_max = date('Y-m-d H:i:s', $timestamp + $days_before * 24 * 60 * 60); $date_min = date('Y-m-d H:i:s', $timestamp + ($days_before - 1) * 24 * 60 * 60); $query_users = $wpdb->prepare("SELECT {$wpdb->users}.ID FROM {$wpdb->users}\n\t\tLEFT JOIN {$wpdb->usermeta} ON {$wpdb->users}.ID = {$wpdb->usermeta}.user_id\n\t\tWHERE {$wpdb->usermeta}.meta_key = 'membership_expires'\n\t\tAND {$wpdb->usermeta}.meta_value < %s\n\t\tAND {$wpdb->usermeta}.meta_value > %s\n\t\t", $date_max, $date_min); $userids = $wpdb->get_col($query_users); if (!$userids) { return; } foreach ($userids as $user_id) { $user = get_userdata($user_id); $mailto = $user->user_email; $user_login = appthemes_clean($user->user_login); $membership = get_pack($user->active_membership_pack); $membership_pack_name = appthemes_clean($membership->pack_name); $membership_expires = appthemes_display_date($user->membership_expires); $message = html('p', sprintf(__('Hi %s,', APP_TD), $user_login)) . PHP_EOL; $message .= html('p', sprintf(__('Your membership pack will expire in %d days! Please renew your membership to continue posting classified ads.', APP_TD), $days_before)) . PHP_EOL; $message_details = __('Membership Details', APP_TD) . '<br />'; $message_details .= __('-----------------', APP_TD) . '<br />'; $message_details .= sprintf(__('Membership Pack: %s', APP_TD), $membership_pack_name) . '<br />'; $message_details .= sprintf(__('Membership Expires: %s', APP_TD), $membership_expires) . '<br />'; $message_details .= sprintf(__('Renew Your Membership Pack: %s', APP_TD), CP_MEMBERSHIP_PURCHASE_URL) . '<br />'; $message .= html('p', $message_details) . PHP_EOL; $message .= html('p', sprintf(__('For questions or problems, please contact us directly at %s', APP_TD), get_option('admin_email'))); $message .= html('p', __('Regards,', APP_TD) . '<br />' . sprintf(__('Your %s Team', APP_TD), $blogname)); $message .= html('p', $siteurl); $email = array('to' => $mailto, 'subject' => $subject, 'message' => $message); $email = apply_filters('cp_email_user_membership_reminder', $email, $order); appthemes_send_email($email['to'], $email['subject'], $email['message']); } }
/** * Sends email reminder about ending membership plan, default is 7 days before expire. * Cron jobs execute the following function once per day. * * @return void */ function cp_membership_reminder_cron() { global $wpdb, $cp_options; if (!$cp_options->membership_ending_reminder_email) { return; } $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); $subject = sprintf(__('Membership Subscription Ending on %s', APP_TD), $blogname); $siteurl = home_url('/'); $days_before = $cp_options->membership_ending_reminder_days; $days_before = is_numeric($days_before) ? $days_before : 7; $timestamp = wp_next_scheduled('cp_send_membership_reminder'); $timestamp = $timestamp - 1 * 24 * 60 * 60 + get_option('gmt_offset') * 3600; // minus 1 day to get current schedule time, plus GMT offset $date_max = date('Y-m-d H:i:s', $timestamp + $days_before * 24 * 60 * 60); $date_min = date('Y-m-d H:i:s', $timestamp + ($days_before - 1) * 24 * 60 * 60); $query_users = $wpdb->prepare("SELECT {$wpdb->users}.ID FROM {$wpdb->users}\n\t\tLEFT JOIN {$wpdb->usermeta} ON {$wpdb->users}.ID = {$wpdb->usermeta}.user_id\n\t\tWHERE {$wpdb->usermeta}.meta_key = 'membership_expires'\n\t\tAND {$wpdb->usermeta}.meta_value < %s\n\t\tAND {$wpdb->usermeta}.meta_value > %s\n\t\t", $date_max, $date_min); $userids = $wpdb->get_col($query_users); if (!$userids) { return; } $users = array(); foreach ($userids as $user_id) { $user = get_userdata($user_id); $mailto = $user->user_email; $user_login = appthemes_clean($user->user_login); $membership = cp_get_membership_package($user->active_membership_pack); $membership_pack_name = appthemes_clean($membership->pack_name); $membership_expires = appthemes_display_date($user->membership_expires); $message = html('p', sprintf(__('Hi %s,', APP_TD), $user_login)) . PHP_EOL; $message .= html('p', sprintf(__('Your membership pack will expire in %d days! Please renew your membership to continue posting classified ads.', APP_TD), $days_before)) . PHP_EOL; $message_details = __('Membership Details', APP_TD) . '<br />'; $message_details .= __('-----------------', APP_TD) . '<br />'; $message_details .= sprintf(__('Membership Pack: %s', APP_TD), $membership_pack_name) . '<br />'; $message_details .= sprintf(__('Membership Expires: %s', APP_TD), $membership_expires) . '<br />'; $message_details .= sprintf(__('Renew Your Membership Pack: %s', APP_TD), html_link(CP_MEMBERSHIP_PURCHASE_URL)) . '<br />'; $message .= html('p', $message_details) . PHP_EOL; $message .= html('p', sprintf(__('For questions or problems, please contact us directly at %s', APP_TD), get_option('admin_email'))); $message .= html('p', __('Regards,', APP_TD) . '<br />' . sprintf(__('Your %s Team', APP_TD), $blogname)); $message .= html('p', html_link($siteurl)); $email = array('to' => $mailto, 'subject' => $subject, 'message' => $message); $email = apply_filters('cp_email_user_membership_reminder', $email, $user_id); appthemes_send_email($email['to'], $email['subject'], $email['message']); $users[$user_id] = array('user' => html_link(sprintf('mailto:%s', $user->user_email), $user->user_login), 'membership' => $membership->pack_name, 'expires' => $user->membership_expires); } // allow overriding admin notifications if (!apply_filters('cp_admin_membership_reminder', true, $users)) { return; } ### notify admin // loop through the users again to notify the admin about expiring memberships foreach ($users as $user_id => $data) { $items[] = $data; } if (!empty($items)) { $table = new APP_Email_Table($items); $admin_email = get_option('admin_email'); $message = html('p', __('Dear Admin,', APP_TD)) . PHP_EOL; $message .= html('p', sprintf(__('Membership pack for these users expire in %d days! These users will need to renew their membership to continue posting classified ads on your site:', APP_TD), $days_before)) . PHP_EOL; $message .= html('p', $table->display()) . PHP_EOL; $email = array('to' => $admin_email, 'subject' => $subject, 'message' => $message); appthemes_send_email($email['to'], $email['subject'], $email['message']); } }