69 lines
2.1 KiB
PHP
69 lines
2.1 KiB
PHP
<?php
|
|
|
|
class Wiaas_Support_Api {
|
|
|
|
/**
|
|
* Endpoint namespace.
|
|
*
|
|
* @var string
|
|
*/
|
|
private static $namespace = 'wiaas';
|
|
|
|
private static $rest_base = 'support';
|
|
|
|
|
|
public static function register_routes() {
|
|
|
|
register_rest_route(self::$namespace, self::$rest_base . '/send-support-email', array(
|
|
'methods' => 'POST',
|
|
'callback' => array(__CLASS__, 'send_support_email'),
|
|
'permission_callback' => 'is_user_logged_in',
|
|
//this.props.order, this.props.order.packages, this.props.supportText
|
|
'args' => array(
|
|
'id' => array(
|
|
'description' => __('Order ID.', 'wiaas'),
|
|
'type' => 'integer',
|
|
'required' => true,
|
|
'sanitize_callback' => 'absint',
|
|
),
|
|
'support_text' => array(
|
|
'description' => __('Email text.', 'wiaas'),
|
|
'type' => 'string',
|
|
'required' => true
|
|
)
|
|
)
|
|
));
|
|
}
|
|
|
|
/**
|
|
* Send support email and save massage to order notes
|
|
*
|
|
* @param WP_REST_Request $request Request data.
|
|
*
|
|
* @return WP_REST_Response
|
|
*/
|
|
public static function send_support_email($request) {
|
|
|
|
$order_id = $request['id'];
|
|
$message = $request['support_text'];
|
|
$order = wc_get_order($order_id);
|
|
$customer_id = $order->get_customer_id();
|
|
$customer = get_user_by('id', $customer_id);
|
|
|
|
|
|
$mailer = WC()->mailer();
|
|
|
|
$recipient = WIAAS_SUPPORT_EMAIL;
|
|
$subject = __('Customer: '.$customer->get('first_name').', '.''.$customer->get('last_name').' needs support for order number: ' .$order->get_order_number());
|
|
|
|
$headers = array();
|
|
$success = $mailer->send( $recipient, $subject, $message, $headers );
|
|
|
|
if ($success) {
|
|
wc_create_order_note($order_id , $message, true );
|
|
return wiaas_api_notice('EMAIL_SENT', 'success');
|
|
}
|
|
|
|
return wiaas_api_notice('EMAIL_NOT_SENT', 'failed');
|
|
}
|
|
} |