$verified ) ); } /** * Enqueue frontend scripts */ public static function apsispro_enqueue_frontend_scripts() { wp_enqueue_script( 'frontend', plugins_url( '/js/frontend.min.js', __FILE__ ), array( 'jquery' ) ); wp_localize_script( 'frontend', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'error_msg_standard' => __( 'An error occurred, please try again later.', 'apsispro' ), 'error_msg_email' => __( 'The e-mail address is not correct.', 'apsispro' ), 'error_msg_mailinglist' => __( 'A mailing list needs to be selected.', 'apsispro' ) ) ); } public static function load_textdomain() { load_plugin_textdomain( 'apsispro', false, plugin_basename( dirname( __FILE__ ) ) . '/languages' ); } /** * Create new subscriber to mailing list at APSIS. */ public static function apsispro_action_callback() { $form_data = array( 'Email' => ( isset( $_POST['email'] ) ? $_POST['email'] : '' ), 'Name' => ( isset( $_POST['name'] ) ? $_POST['name'] : '' ) ); $args = array( 'headers' => array( 'Accept' => 'application/json', 'Content-Type' => 'application/json' ), 'body' => json_encode( $form_data ) ); $options = get_option( 'apsispro_settings' ); if ( isset( $options['apsispro_hidden_https'] ) ) : $https = $options['apsispro_hidden_https']; else : $https = false; endif; $response = wp_remote_post( self::get_api_url( $https, $options['apsispro_input_api_key'], $options['apsispro_select_api_url'] ) . '/v1/subscribers/mailinglist/' . $_POST['listid'] . '/create?updateIfExists=true', $args ); if ( is_wp_error( $response ) ): print( - 1 ); else: print( $response['body'] ); ob_start(); do_action( 'apsispro_after_form_registration', $form_data ); ob_end_clean(); endif; wp_die(); } /** * Add settings page in admin menu */ public static function apsispro_add_admin_menu() { add_submenu_page( 'options-general.php', __( 'APSIS Pro Settings', 'apsispro' ), __( 'APSIS Pro', 'apsispro' ), 'manage_options', 'apsispro-settings', array( __CLASS__, 'apsispro_settings_page' ), 'dashicons-admin-generic' ); } /** * Register settings for settings page */ public static function apsispro_settings_init() { register_setting( 'apsispro_group', 'apsispro_settings', array( __CLASS__, 'apsispro_api_validation' ) ); register_setting( 'apsispro_hidden_group', 'apsispro_settings' ); register_setting( 'apsispro_shortcode_group', 'apsispro_settings' ); add_settings_section( 'apsispro_group_section', __( 'APSIS Pro settings', 'apsispro' ), array( __CLASS__, 'apsispro_settings_section_callback' ), 'apsispro_group' ); add_settings_section( 'apsispro_hidden_group_section', '', array( __CLASS__, 'apsispro_hidden_settings_section_callback' ), 'apsispro_hidden_group' ); add_settings_section( 'apsispro_shortcode_group_section', __( 'Shortcode Generator', 'apsispro' ), array( __CLASS__, 'apsispro_shortcode_settings_section_callback' ), 'apsispro_shortcode_group' ); add_settings_field( 'apsispro_input_api_key', __( 'APSIS Pro API Key', 'apsispro' ), array( __CLASS__, 'apsispro_input_api_key_render' ), 'apsispro_group', 'apsispro_group_section' ); add_settings_field( 'apsispro_select_api_url', __( 'We access APSIS Pro via', 'apsispro' ), array( __CLASS__, 'apsispro_select_api_url_render' ), 'apsispro_group', 'apsispro_group_section' ); add_settings_field( 'apsispro_hidden_verified', null, array( __CLASS__, 'apsispro_hidden_verified_render' ), 'apsispro_hidden_group', 'apsispro_hidden_group_section' ); add_settings_field( 'apsispro_hidden_https', null, array( __CLASS__, 'apsispro_hidden_https_render' ), 'apsispro_hidden_group', 'apsispro_hidden_group_section' ); add_settings_field( 'apsispro_select_mailing_list', __( 'Select Mailing List(s)', 'apsispro' ), array( __CLASS__, 'apsispro_select_mailing_list_render' ), 'apsispro_shortcode_group', 'apsispro_shortcode_group_section' ); add_settings_field( 'apsispro_checkbox_name', __( 'Show name field', 'apsispro' ), array( __CLASS__, 'apsispro_checkbox_name_render' ), 'apsispro_shortcode_group', 'apsispro_shortcode_group_section' ); add_settings_field( 'apsispro_input_thank_you_msg', __( 'Thank you message', 'apsispro' ), array( __CLASS__, 'apsispro_input_thank_you_msg_render' ), 'apsispro_shortcode_group', 'apsispro_shortcode_group_section' ); add_settings_field( 'apsispro_input_submit_name', __( 'Submit name', 'apsispro' ), array( __CLASS__, 'apsispro_input_submit_name_render' ), 'apsispro_shortcode_group', 'apsispro_shortcode_group_section' ); } /** * Hidden field for verification status */ public static function apsispro_hidden_verified_render() { $options = get_option( 'apsispro_settings' ); ?> '> '> '> 'www.anpdm.com', 'url' => 'se.api.anpdm.com:8443' ), array( 'name' => 'www.anpasia.com', 'url' => 'se.api.anpasia.com' ) ); $options = get_option( 'apsispro_settings' ); if ( isset( $options['apsispro_select_api_url'] ) ) : $selected_api_url = $options['apsispro_select_api_url']; else : $selected_api_url = 'se.api.anpdm.com'; endif; ?>
' . $instance['text'] . '
'; endif; if ( ! empty( $instance['mailinglist'] ) ) : $mailinglist_array = array(); foreach ( $instance['mailinglist'] as $mailinglist => $list_item ) { $mailinglist_array_item = explode( '|', $list_item ); $mailinglist_array[$mailinglist_array_item[0]] = $mailinglist_array_item[1]; } $submit_name = $instance['submitname']; if( $submit_name == '' ) : $submit_name = __('Subscribe', 'apsispro'); endif; APSIS_Pro_For_WP::get_form( $mailinglist_array, $instance['show-name'], $instance['thank-you-msg'], $submit_name ); endif; echo $args['after_widget']; } /** * Backend widget form. * * @param array $instance Previously saved values from database. */ public function form( $instance ) { if ( isset( $instance['title'] ) ) { $title = $instance['title']; } else { $title = __( 'New title', 'apsispro' ); } if ( isset( $instance['text'] ) ) { $text = $instance['text']; } else { $text = __( 'New text', 'apsispro' ); } if ( isset( $instance['mailinglist'] ) ) { $mailinglist = $instance['mailinglist']; } else { $mailinglist = - 1; } if ( isset( $instance['show-name'] ) ) { $show_name = $instance['show-name']; } else { //decide what should be default $show_name = false; } if ( isset( $instance['thank-you-msg'] ) ) { $thank_you_msg = $instance['thank-you-msg']; } else { $thank_you_msg = __( 'Thank you for submitting!', 'apsispro' ); } if ( isset( $instance['submitname'] ) ) { $submitname = $instance['submitname']; } else { $submitname = __( 'Subscribe', 'apsispro' ); } ?>
name="get_field_name( 'show-name' ); ?>" type="checkbox">