's2_form_widget',
'description' => esc_html__( 'Sidebar Widget for Subscribe2', 'subscribe2' ),
'customize_selective_refresh' => true,
'show_instance_in_rest' => true,
);
// add_filter( 'widget_text', 'shortcode_unautop' );
// add_filter( 'widget_text', 'do_shortcode' );
$control_ops = array(
'width' => 250,
'height' => 300,
);
parent::__construct( 's2_form_widget', esc_html__( 'Subscribe2 Widget', 'subscribe2' ), $widget_ops, $control_ops );
}
/**
* Displays the Widget
*/
public function widget( $args, $instance ) {
$title = empty( $instance['title'] ) ? __( 'Subscribe2', 'subscribe2' ) : $instance['title'];
$div = empty( $instance['div'] ) ? 'search' : $instance['div'];
$widgetprecontent = empty( $instance['widgetprecontent'] ) ? '' : $instance['widgetprecontent'];
$widgetpostcontent = empty( $instance['widgetpostcontent'] ) ? '' : $instance['widgetpostcontent'];
$textbox_size = empty( $instance['size'] ) ? 20 : $instance['size'];
$hidebutton = empty( $instance['hidebutton'] ) ? 'none' : $instance['hidebutton'];
$postto = empty( $instance['postto'] ) ? '' : $instance['postto'];
$js = empty( $instance['js'] ) ? '' : $instance['js'];
$noantispam = empty( $instance['noantispam'] ) ? '' : $instance['noantispam'];
$nowrap = empty( $instance['nowrap'] ) ? '' : $instance['nowrap'];
$hide = '';
if ( 'subscribe' === $hidebutton || 'unsubscribe' === $hidebutton ) {
$hide = ' hide="' . $hidebutton . '"';
} elseif ( 'link' === $hidebutton ) {
$hide = ' link="' . __( '(Un)Subscribe to Posts', 'subscribe2' ) . '"';
}
$postid = '';
if ( ! empty( $postto ) ) {
$postid = ' id="' . $postto . '"';
}
$size = ' size="' . $textbox_size . '"';
$nojs = '';
if ( $js ) {
$nojs = ' nojs="true"';
}
if ( $noantispam ) {
$noantispam = ' noantispam="true"';
}
if ( $nowrap ) {
$nowrap = ' wrap="false"';
}
$shortcode = '[subscribe2' . $hide . $postid . $size . $nojs . $noantispam . $nowrap . ' widget="true"]';
echo wp_kses_post( $args['before_widget'] );
if ( ! empty( $title ) ) {
echo wp_kses_post( $args['before_title'] ) . esc_attr( $title ) . wp_kses_post( $args['after_title'] );
}
echo '
';
if ( ! empty( $widgetprecontent ) ) {
echo wp_kses_post( $widgetprecontent );
}
echo do_shortcode( $shortcode );
if ( ! empty( $widgetpostcontent ) ) {
echo wp_kses_post( $widgetpostcontent );
}
echo '
';
echo wp_kses_post( $args['after_widget'] );
}
/**
* Saves the widgets settings.
*/
public function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['title'] = wp_strip_all_tags( stripslashes( $new_instance['title'] ) );
$instance['div'] = wp_strip_all_tags( stripslashes( $new_instance['div'] ) );
$instance['widgetprecontent'] = stripslashes( $new_instance['widgetprecontent'] );
$instance['widgetpostcontent'] = stripslashes( $new_instance['widgetpostcontent'] );
$instance['size'] = intval( stripslashes( $new_instance['size'] ) );
$instance['hidebutton'] = wp_strip_all_tags( stripslashes( $new_instance['hidebutton'] ) );
$instance['postto'] = stripslashes( $new_instance['postto'] );
$instance['js'] = stripslashes( $new_instance['js'] );
$instance['noantispam'] = stripslashes( $new_instance['noantispam'] );
$instance['nowrap'] = stripslashes( $new_instance['nowrap'] );
return $instance;
}
/**
* Creates the edit form for the widget.
*/
public function form( $instance ) {
// set some defaults, getting any old options first
$options = get_option( 'widget_subscribe2widget' );
if ( false === $options ) {
$defaults = array(
'title' => 'Subscribe2',
'div' => 'search',
'widgetprecontent' => '',
'widgetpostcontent' => '',
'size' => 20,
'hidebutton' => 'none',
'postto' => '',
'js' => '',
'noantispam' => '',
'nowrap' => '',
);
} else {
$defaults = array(
'title' => $options['title'],
'div' => $options['div'],
'widgetprecontent' => $options['widgetprecontent'],
'widgetpostcontent' => $options['widgetpostcontent'],
'size' => $options['size'],
'hidebutton' => $options['hidebutton'],
'postto' => $options['postto'],
'js' => $options['js'],
'noantispam' => $options['noantispam'],
'nowrap' => $options['nowrap'],
);
delete_option( 'widget_subscribe2widget' );
}
// code to obtain old settings too
$instance = wp_parse_args( (array) $instance, $defaults );
$title = htmlspecialchars( $instance['title'], ENT_QUOTES );
$div = htmlspecialchars( $instance['div'], ENT_QUOTES );
$widgetprecontent = htmlspecialchars( $instance['widgetprecontent'], ENT_QUOTES );
$widgetpostcontent = htmlspecialchars( $instance['widgetpostcontent'], ENT_QUOTES );
$size = htmlspecialchars( $instance['size'], ENT_QUOTES );
$hidebutton = htmlspecialchars( $instance['hidebutton'], ENT_QUOTES );
$postto = htmlspecialchars( $instance['postto'], ENT_QUOTES );
$js = htmlspecialchars( $instance['js'], ENT_QUOTES );
$noantispam = htmlspecialchars( $instance['noantispam'], ENT_QUOTES );
$nowrap = htmlspecialchars( $instance['nowrap'], ENT_QUOTES );
global $wpdb, $mysubscribe2;
$sql = "SELECT ID, post_title FROM $wpdb->posts WHERE post_type='page' AND post_status='publish'";
echo '' . "\r\n";
echo '
' . "\r\n";
echo '
' . "\r\n";
echo '
' . "\r\n";
echo '
' . "\r\n";
echo '
' . "\r\n";
echo '
' . esc_html__( 'Display options', 'subscribe2' ) . ':
' . "\r\n";
echo '' . "\r\n";
echo '
' . "\r\n";
echo '
' . "\r\n";
if ( '1' === $mysubscribe2->subscribe2_options['ajax'] ) {
echo '
' . "\r\n";
}
echo '
' . "\r\n";
echo '
' . "\r\n";
echo '
' . "\r\n";
echo '
' . "\r\n";
echo '
' . "\r\n";
echo '
' . "\r\n";
}
} // End S2_Form_widget class