golden hour
/home/godaofbq/dev.hyperredbed.com/wp-content/plugins/emailkit-pro/includes/Admin/Api
⬆️ Go Up
Upload
File/Folder
Size
Actions
CreateFromSavedTemplate.php
3.07 KB
Del
OK
DeleteSavedTemplate.php
1.46 KB
Del
OK
SaveAsTemplate.php
3.57 KB
Del
OK
Edit: SaveAsTemplate.php
<?php namespace EmailKitPro\Admin\Api; use EmailKitPro; defined('ABSPATH') || exit; class SaveAsTemplate { public function __construct() { add_action('rest_api_init', function () { register_rest_route('emailkit/v1', 'save-as-template/(?P<id>\d+)', array( 'methods' => \WP_REST_Server::ALLMETHODS, 'callback' => array($this, 'action'), 'permission_callback' => '__return_true', 'args' => array( 'id' => array( 'validate_callback' => array($this, 'validate_id'), 'sanitize_callback' => 'absint', ), 'template_name' => array( 'validate_callback' => array($this, 'validate_template_name'), 'sanitize_callback' => 'sanitize_text_field', ), ), )); }); } public function validate_id($param, $request, $key) { if (!is_numeric($param)) { return new \WP_Error('rest_invalid_param', __('Invalid parameter: id must be numeric.', 'emailkit-pro'), array('status' => 400)); } return true; } public function validate_template_name($param, $request, $key) { if (empty($param)) { return new \WP_Error('rest_invalid_param', __('Template name is required.', 'emailkit-pro'), array('status' => 400)); } // Additional custom validation if needed if (!is_string($param)) { return new \WP_Error('rest_invalid_param', __( 'Invalid parameter: template_name must be a string.', 'emailkit-pro' ), array('status' => 400)); } return $param; } public function action($request) { if (!wp_verify_nonce($request->get_header('X-WP-Nonce'), 'wp_rest')) { return new \WP_REST_Response( array('message' => __( 'Invalid nonce.', 'emailkit-pro' )), 403 ); } if (!is_user_logged_in() || !current_user_can('publish_posts')) { return new \WP_REST_Response( array('message' => __( 'Access denied.', 'emailkit-pro' )), 403 ); } $template_name = $request->get_param('template_name') ?: __( 'Saved New Template ', 'emailkit-pro' ) . uniqid(); $template_id = absint($request->get_param('id')); $data = array( 'post_type' => 'emailkit-template', 'post_status' => 'publish', 'post_author' => get_current_user_id(), 'post_title' => $template_name, 'meta_input' => array( 'emailkit_template_id' => $template_id, 'emailkit_template_content_html' => wp_kses($request->get_param('html'), 'db'), 'emailkit_template_content_object' => wp_kses(EmailKitPro\Admin\Helpers\Utils::escape_quotes($request->get_param('object')), 'post'), ), ); $post_id = wp_insert_post($data); if (is_wp_error($post_id)) { return new \WP_REST_Response( array('message' => $post_id->get_error_message()), 400 ); } $message = __( 'Saved Template successfully.', 'emailkit-pro'); return new \WP_REST_Response( array( 'status' => 'success', 'data' => array('templateId' => $post_id), 'message' => array($message), ), 200 ); } }
Save