false, 'message' => __( 'Invalid email', 'brandy' ), ) ); } $newsletter_provider = NewsletterProviderFactory::create( $newsletter_extension['provider'] ?? '' ); if ( ! $newsletter_provider ) { wp_send_json_success( array( 'success' => false, 'message' => __( 'Newsletter provider not found', 'brandy' ), ) ); } $add_subscriber_result = $newsletter_provider->add_subscriber( array( 'email' => $email, 'name' => '', 'list_id' => $newsletter_extension['list_id'] ?? '', ) ); if ( ! $add_subscriber_result['success'] ) { wp_send_json_success( array( 'success' => false, 'message' => $add_subscriber_result['message'] ?? __( 'Subscribe failed', 'brandy' ), ) ); } wp_send_json_success( array( 'success' => true, 'message' => $success_message, ) ); } catch ( \Error $err ) { wp_send_json_success( array( 'success' => false, 'message' => $err->getMessage(), ) ); } die(); } /** * Search function for search box element */ public function search() { // $nonce = isset( $_GET['nonce'] ) ? sanitize_text_field( $_GET['nonce'] ) : ''; // if ( ! wp_verify_nonce( $nonce, 'brandy_search_action' ) ) { // wp_send_json_error( // array( // 'message' => __( 'Verify nonce failed', 'brandy' ), // ) // ); // } try { $search_term = isset( $_GET['s'] ) ? sanitize_text_field( $_GET['s'] ) : ''; //phpcs:ignore. $post_types = isset( $_GET['post_types'] ) ? sanitize_text_field( $_GET['post_types'] ) : ''; //phpcs:ignore. $post_types = $post_types; $limit = isset( $_GET['limit'] ) ? sanitize_text_field( $_GET['limit'] ) : ''; //phpcs:ignore. $offset = isset( $_GET['offset'] ) ? sanitize_text_field( $_GET['offset'] ) : ''; //phpcs:ignore. if ( empty( $post_types ) ) { wp_send_json_success( array( 'data' => array(), ) ); } $query = new WP_Query( array( 'post_type' => $post_types, 'posts_per_page' => $limit, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'title', 's' => $search_term, ) ); ob_start(); get_template_part( 'template-parts/builder/elements/search-results', '', array( 'search_query' => $query, ) ); $html = ob_get_contents(); ob_end_clean(); wp_send_json_success( array( 'html' => $html, ) ); } catch ( \Error $err ) { wp_send_json_error( array( 'message' => $err->getMessage(), ) ); } } }