false, 'message' => $_errors ]; wp_send_json_error( $_errors ); } //php mailer variables $to = $this->settings->get( 'email_address', get_option( 'admin_email' ) ); $subject = wp_sprintf( '%s %s', __( 'Feedback message from', 'betterdocs' ), get_bloginfo( 'name' ) ); $headers = [ 'Content-Type: text/html; charset=UTF-8', "From: $name <{$email}>", "Reply-To: $email" ]; $_response = [ 'success' => true ]; ob_start(); betterdocs()->views->get( 'admin/email/feedback-email', [ 'name' => $name, 'article' => $article, 'message_text' => $message_text ] ); $message = ob_get_clean(); // @todo: check strip tags: wp_mail( $to, $subject, strip_tags( $message ), $headers ) if ( wp_mail( $to, $subject, $message, $headers ) ) { $_response['message'] = __( 'Thanks! Your message has been sent.', 'betterdocs' ); } else { $_response['success'] = false; $_response['message'] = __( 'Message was not sent. Try Again.', 'betterdocs' ); } wp_send_json_success( $_response ); } public function get_name() { return 'betterdocs_feedback_form'; } /** * Summary of default_attributes * @return array */ public function default_attributes() { return [ 'button_text' => __( 'Send', 'betterdocs' ) ]; } public function render( $atts, $content = null ) { $this->views( 'shortcodes/feedback-form' ); } public function view_params() { $params = $this->attributes; $name = ''; $email = ''; if ( is_user_logged_in() ) { $userdata = get_userdata( get_current_user_id() ); $name = $userdata->first_name . ' ' . $userdata->last_name; $email = $userdata->user_email; } $params['name'] = $name; $params['email'] = $email; return $params; } }