From a07c0e4584c3d69146eff7b5f0d6fbc12bba938d Mon Sep 17 00:00:00 2001 From: Nedim Uka Date: Fri, 16 Nov 2018 17:14:15 +0100 Subject: [PATCH] Added support for sending customer emails --- .../includes/api/class-wiaas-support-api.php | 65 +++++++++++++++++++ ...lass-wiaas-wc-package-api-integration.php} | 0 .../wiaas/includes/class-wiaas-api.php | 4 +- backend/config/application.php | 3 +- frontend/src/actions/orders/processActions.js | 5 +- 5 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 backend/app/plugins/wiaas/includes/api/class-wiaas-support-api.php rename backend/app/plugins/wiaas/includes/api/{class-wiaas-wc- package-api-integration.php => class-wiaas-wc-package-api-integration.php} (100%) diff --git a/backend/app/plugins/wiaas/includes/api/class-wiaas-support-api.php b/backend/app/plugins/wiaas/includes/api/class-wiaas-support-api.php new file mode 100644 index 0000000..93ec35f --- /dev/null +++ b/backend/app/plugins/wiaas/includes/api/class-wiaas-support-api.php @@ -0,0 +1,65 @@ + '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', + ), + 'supportText' => 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['supportText']; + + $mailer = WC()->mailer(); + + $recipient = WIAAS_SUPPORT_EMAIL; + $subject = __("Customer comment for order id: ".$order_id); + + $headers = array(); + $success = $mailer->send( $recipient, $subject, $message, $headers ); + + if ($success) { + wc_create_order_note($message = $request['id'] , $message, true ); + return wiaas_api_notice('EMAIL_SENT', 'success'); + } + + return wiaas_api_notice('EMAIL_NOT_SENT', 'failed'); + } +} \ No newline at end of file diff --git a/backend/app/plugins/wiaas/includes/api/class-wiaas-wc- package-api-integration.php b/backend/app/plugins/wiaas/includes/api/class-wiaas-wc-package-api-integration.php similarity index 100% rename from backend/app/plugins/wiaas/includes/api/class-wiaas-wc- package-api-integration.php rename to backend/app/plugins/wiaas/includes/api/class-wiaas-wc-package-api-integration.php diff --git a/backend/app/plugins/wiaas/includes/class-wiaas-api.php b/backend/app/plugins/wiaas/includes/class-wiaas-api.php index 8cb4cb5..6cf0d66 100644 --- a/backend/app/plugins/wiaas/includes/class-wiaas-api.php +++ b/backend/app/plugins/wiaas/includes/class-wiaas-api.php @@ -43,7 +43,8 @@ class Wiaas_API { include_once dirname( __FILE__ ) . '/api/class-wiaas-order-projects-api.php'; - include_once dirname( __FILE__ ) . '/api/class-wiaas-wc- package-api-integration.php'; + include_once dirname( __FILE__ ) . '/api/class-wiaas-wc-package-api-integration.php'; + include_once dirname( __FILE__ ) . '/api/class-wiaas-support-api.php'; // API functions include_once dirname( __FILE__ ) . '/api/wiaas-api-functions.php'; @@ -58,6 +59,7 @@ class Wiaas_API { 'Wiass_REST_User_API', 'Wiaas_REST_Customer_API', 'Wiaas_Order_Projects_API', + 'Wiaas_Support_Api', ); foreach ( $controllers as $controller ) { diff --git a/backend/config/application.php b/backend/config/application.php index da02a01..32cbb01 100644 --- a/backend/config/application.php +++ b/backend/config/application.php @@ -76,6 +76,7 @@ define('SENDGRID_FROM_NAME', env('WP_SENDGRID_FROM_NAME' ?: 'Wiaas')); * Wiaas Env variables */ define('WIAAS_CUSTOMER_INTERFACE', env('WIAAS_CUSTOMER_INTERFACE') ?: WP_HOME); +define('WIAAS_SUPPORT_EMAIL', env('WIAAS_SUPPORT_EMAIL') ?: 'support@co-ideation.com'); /** * Custom Settings @@ -89,4 +90,4 @@ define('DISALLOW_FILE_EDIT', true); */ if (!defined('ABSPATH')) { define('ABSPATH', $webroot_dir . '/wp/'); -} \ No newline at end of file +} diff --git a/frontend/src/actions/orders/processActions.js b/frontend/src/actions/orders/processActions.js index 87bef48..b5eebf3 100644 --- a/frontend/src/actions/orders/processActions.js +++ b/frontend/src/actions/orders/processActions.js @@ -326,11 +326,12 @@ export const setSupportMessage = (message) => ({ }); export const sendSupportMail = (orderInfo, orderPackages, supportText) => { + let id = orderInfo.id; return dispatch => { return htmlClient.fetch({ - url: `${API_SERVER}/orders/api/sendSupportMail`, + url: `${API_SERVER}/wp-json/wiaas/support/sendSupportMail`, method: 'post', - data: {orderInfo, orderPackages, supportText} + data: {id, supportText} }) .then(response => { if (typeof response.data !== 'undefined' && 'messages' in response.data) {