\n";
$html .= "\n";
$html .= "\n";
}
// and output it
return $html;
}
//============= Widget Class ==============================================
class ALO_Easymail_Widget extends WP_Widget {
// this constructor cannot be __construct!! causes 500 server error
function ALO_Easymail_Widget() {
/* Widget settings. NOTE: Class name must be lower case*/
$widget_ops = array( 'classname' => 'alo_easymail_widget', 'description' => __('Allow users to opt in/out of email', 'alo-easymail') );
/* Widget control settings. */
$control_ops = array( 'width' => 300, 'height' => 350, 'id_base' => 'alo-easymail-widget' );
/* Create the widget. */
$this->WP_Widget( 'alo-easymail-widget', __('ALO Easymail Widget', 'alo-easymail'), $widget_ops, $control_ops );
}
/**
* Display the widget on the screen.
*/
/* args array
[name] => Sidebar 1
[id] => sidebar-1
[description] =>
[before_widget] =>
[after_widget] =>
[before_title] =>
[after_title] =>
[widget_id] => example-widget-4
[widget_name] => Example Widget
*/
function widget( $args, $instance ) {
global $user_ID, $user_email, $wpdb;
extract( $args );
// add ALO: hide the widget in subscriber page
if ( is_page(get_option('alo_em_subsc_page')) ) return;
// Our variables from the widget settings.
$title = apply_filters('widget_title', $instance['title'] );
// Get the the user's optin setting
if (alo_em_is_subscriber($user_email)){
$optin_checked = "checked='checked'";
$optout_checked = "";
}
else{
$optin_checked = "";
$optout_checked = "checked='checked'";
}
// Before widget (defined by themes).
echo $before_widget;
// Display the widget title if one was input (before and after defined by themes).
if ( $title )
echo $before_title . $title . $after_title;
// get the message optin/out messages
// mod ALO: we need them also outside widget
$optin_msg = get_option('alo_em_optin_msg');
$optout_msg = get_option('alo_em_optout_msg');
//$optin_msg = $instance['alo_easymail_optin_msg'];
//$optout_msg = $instance['alo_easymail_optout_msg'];
// add ALO: print the form
echo alo_em_show_widget_form ();
// and output it
//echo $html;
// After widget (defined by themes).
echo $after_widget;
}
/**
* Update the widget settings.
*/
function update( $new_instance, $old_instance ) {
$instance = $old_instance;
// Strip tags for title and name to remove HTML
$instance['title'] = strip_tags( $new_instance['title'] );
//$instance['alo_easymail_optin_msg'] = strip_tags( $new_instance['alo_easymail_optin_msg'] );
//$instance['alo_easymail_optout_msg'] = strip_tags( $new_instance['alo_easymail_optout_msg'] );
// add ALO: add option text to use form outside widget
//update_option( "alo_em_optin_msg", strip_tags( $new_instance['alo_easymail_optin_msg']) /*$instance['alo_easymail_optin_msg']*/ );
//update_option( "alo_em_optout_msg", strip_tags( $new_instance['alo_easymail_optout_msg']) /*$instance['alo_easymail_optout_msg']*/ );
return $instance;
}
/**
* Displays the widget settings controls on the widget panel.
* Make use of the get_field_id() and get_field_name() function
* This handles the confusing stuff.
*/
function form( $instance ) {
/* Set up some default widget settings. */
$defaults = array( 'title' => __('Newsletter', 'alo-easymail') );
$instance = wp_parse_args( (array) $instance, $defaults );
$html = "";
$html .= "\r\n".'';
$html .= "\r\n".'