<?php
/**
* WP-Property Mail Notifications
* Contains set of static methods for notifications
*
* @version 1.0
* @author Usability Dynamics, Inc. <info@usabilitydynamics.com>
* @package WP-Property
* @since 1.38
*/
class WPP_Mail {
/**
*
* @param type $notification
* @author peshkov@UD
* @since 1.38
*/
function _send_notification( $notification ) {
$notification = apply_filters( 'wpp::send_notification', $notification );
UD_API::send_notification( $notification );
}
/**
*
* @author peshkov@UD
* @since 1.38
*/
function _notification_template() {
return apply_filters( 'wpp::mail::template', array(
'trigger_action' => 'wpp_default_action',
'data' => array(),
'user' => false,
'subject' => __( 'No Subject', 'wpp' ),
'message' => '',
'crm_log_message' => '',
) );
}
/**
*
* @author peshkov@UD
* @since 1.38
*/
function user_created( $user_id, $new_user, $args = array() ) {
$notification = self::_notification_template();
$user_data = get_userdata( $user_id );
$activation_link = get_bloginfo('home').'?wpp_user='.$user_id.'&wpp_user_activation='.md5($user_id.$user_data->data->user_email.SECURE_AUTH_SALT);
$notification['trigger_action'] = 'feps_use_account_created';
$notification['user'] = $user_id;
$notification['subject'] = __('Account Created', 'wpp');
$notification['message'] = sprintf(__('Hello [display_name]%1$s%1$sYour account on [site_url] has been created and is waiting for activation.%1$s%1$sClick this link to activate your account:%1$s[activation_link]%1$s%1$sAccess data:%1$s[user_login] / [user_password]', 'wpp'), PHP_EOL);
$notification['crm_log_message'] = __('New User account created.', 'wpp' );
$notification['data']['notification_type'] = __('User Account Created', 'wpp');
$notification['data']['user_email'] = $user_data->data->user_email;
$notification['data']['display_name'] = $user_data->data->display_name;
$notification['data']['user_login'] = $new_user['user_login'];
$notification['data']['user_password'] = $new_user['user_pass'];
$notification['data']['site_url'] = site_url();
$notification['data']['activation_link'] = $activation_link;
$notification['data']['system_message'] = $notification['message'];
$notification = UD_API::array_merge_recursive_distinct( $notification, $args );
self::_send_notification( $notification );
}
/**
*
* @author peshkov@UD
* @since 1.38
*/
function feps_post_approved ( $post_id, $args = array() ) {
global $wp_post_statuses;
$notification = self::_notification_template();
$_property = WPP_F::get_property( $post_id, array( 'get_children' => 'false' ) );
$user_id = $_property[ 'post_author' ];
$user = get_user_by( 'id', $user_id );
$notification['trigger_action'] = 'pending_property_approve';
$notification['user'] = $user;
$notification['subject'] = __('Submission Approved', 'wpp');
$notification['message'] = sprintf( __('Hello.%1$s%1$sYour %2$s has been published.%1$s%1$sYou can view it using this URL: %1$s[property_link]', 'wpp'), PHP_EOL, WPP_F::property_label( 'singular' ) );
$notification['crm_log_message'] = sprintf(__('User-submitted %1$s ([property_title]) approved and published.', 'wpp'), WPP_F::property_label( 'singular' ) );
$notification['data']['notification_type'] = __('Submission Approved', 'wpp');
$notification['data']['user_email'] = $user->data->user_email;
$notification['data']['display_name'] = $user->data->display_name;
$notification['data']['site_url'] = site_url();
$notification['data']['url'] = $notification['data']['property_link'] = class_wpp_feps::get_feps_permalink( $_property, false );
$notification['data']['title'] = $notification['data']['property_title'] = $post->post_title;
$notification['data']['status'] = @$wp_post_statuses[get_post_status($post_id)]->label;
$notification = UD_API::array_merge_recursive_distinct( $notification, $args );
self::_send_notification( $notification );
}
/**
* Should be called on FEPS property status update
*
* @param int $post_id
* @param array $args
* @author peshkov@UD
* @since 1.38
*/
function feps_post_status_updated( $post_id, $args = array() ) {
global $wp_post_statuses;
$notification = self::_notification_template();
$_property = WPP_F::get_property( $post_id, array( 'get_children' => 'false' ) );
$user = get_userdata( $_property[ 'post_author' ] );
$notification['trigger_action'] = 'feps_status_updated';
$notification['user'] = $user;
$notification['subject'] = __('Status Updated', 'wpp' );
$notification['message'] = sprintf( __('Hello.%1$s%1$sYour %2$s status has been updated.%1$s%1$sYou can view it using this URL: %1$s[property_link]', 'wpp'), PHP_EOL, WPP_F::property_label( 'singular' ) );
$notification['crm_log_message'] = sprintf( __('FEPS %1$s ([property_title]) status has been changed.', 'wpp'), WPP_F::property_label( 'singular' ) );
$notification['data']['notification_type'] = __('Status Updated', 'wpp');
$notification['data']['site_url'] = site_url();
$notification['data']['user_email'] = $user->data->user_email;
$notification['data']['display_name'] = $user->data->display_name;
$notification['data']['user_login'] = $user->data->user_login;
$notification['data']['user_password'] = $user->data->user_pass;
$notification['data']['title'] = $notification['data']['property_title'] = $post_after->post_title;
$notification['data']['url'] = $notification['data']['property_link'] = class_wpp_feps::get_feps_permalink( $_property, false );
$notification['data']['status'] = @$wp_post_statuses[$_property['post_status']]->label;
$notification = UD_API::array_merge_recursive_distinct( $notification, $args );
self::_send_notification( $notification );
}
/**
*
* @author peshkov@UD
* @since 1.38
*/
function feps_post_created ( $post_id, $args= array() ) {
global $wp_post_statuses;
$notification = self::_notification_template();
$_property = WPP_F::get_property( $post_id, array( 'get_children' => 'false' ) );
$user_id = $_property[ 'post_author' ];
$user = get_user_by( 'id', $user_id );
$notification['trigger_action'] = 'pending_property_added';
$notification['user'] = $user;
$notification['subject'] = __('Submission Received', 'wpp');
$notification['message'] = sprintf( __('Hello.%1$s%1$sYour %2$s has been received.%1$s%1$sYou can view it using this URL:%1$s[pending_url]', 'wpp'), PHP_EOL, WPP_F::property_label( 'singular' ) );
$notification['crm_log_message'] = sprintf( __('User submitted %1$s ([property_title]) using FEPS.', 'wpp'), WPP_F::property_label( 'singular' ) );
$notification['data']['notification_type'] = __('Submission Received', 'wpp');
$notification['data']['display_name'] = $user->data->display_name;
$notification['data']['user_email'] = $user->data->user_email;
$notification['data']['site_url'] = site_url();
$notification['data']['pending_url'] = class_wpp_feps::get_feps_permalink( $_property, false );
$notification['data']['title'] = $notification['data']['property_title'] = $_property['post_title'];
$notification['data']['status'] = @$wp_post_statuses[$_property['post_status']]->label;
$notification = UD_API::array_merge_recursive_distinct( $notification, $args );
self::_send_notification( $notification );
}
}