1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
class Push7_Subscribe_Button_Widget extends WP_Widget {
private $mode_variation = array();
public function __construct() {
parent::__construct(
'push7-subscribe',
__( 'Push7 Subscribe Button', 'simple-push-subscribe-button' ),
array(
'description' => __( 'Show push7 subscribe button.', 'simple-push-subscribe-button' ),
)
);
$this->mode_variation = array(
'r' => __( 'Count on right', 'simple-push-subscribe-button' ),
't' => __( 'Vertical', 'simple-push-subscribe-button' ),
'n' => __( 'No count', 'simple-push-subscribe-button' ),
);
}
public function widget( $args, $instance ) {
echo $args['before_widget'];
if ( ! empty( $instance['title'] ) ) {
echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
}
$app_id = empty( $instance['appid'] ) ? Push7_Subscribe_Button::get_appid_inc_official() : $instance['appid'];
$mode = empty( $instance['mode'] ) ? '' : $instance['mode'];
wp_enqueue_script( 'push7-subscribe-button' );
echo Push7_Subscribe_Button::get_official_button( $app_id, $mode );
echo $args['after_widget'];
}
public function form( $instance ) {
$title = isset( $instance['title'] ) ? $instance['title'] : __( 'Subscribe Push Notification', 'simple-push-subscribe-button' );
$mode = ! empty( $instance['mode'] ) ? $instance['mode'] : 'r';
$appid = ! empty( $instance['appid'] ) ? $instance['appid'] : '';
?>
<p>
<label
for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title (Option):', 'simple-push-subscribe-button' ); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
name="<?php echo $this->get_field_name( 'title' ); ?>" type="text"
value="<?php echo esc_attr( $title ); ?>">
</p>
<p>
<label
for="<?php echo $this->get_field_id( 'mode' ); ?>"><?php _e( 'Mode:', 'simple-push-subscribe-button' ); ?></label>
<select class="widefat" id="<?php echo $this->get_field_id( 'mode' ); ?>"
name="<?php echo $this->get_field_name( 'mode' ); ?>">
<?php foreach ( $this->mode_variation as $m => $name ) :
?>
<option value="<?php echo $m; ?>" <?php selected( $mode, $m ); ?>><?php echo $name; ?></option><?php
endforeach;
?>
</select>
</p>
<p>
<label
for="<?php echo $this->get_field_id( 'appid' ); ?>"><?php _e( 'APPID (Option):', 'simple-push-subscribe-button' ); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id( 'appid' ); ?>"
name="<?php echo $this->get_field_name( 'appid' ); ?>" type="text"
value="<?php echo esc_attr( $appid ); ?>"
placeholder="<?php echo esc_attr( Push7_Subscribe_Button::get_appid_inc_official() ); ?>"
pattern="<?php echo Push7_Subscribe_Button::APP_ID_PATTERN; ?>"
>
</p>
<?php
return $instance;
}
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ! empty( $new_instance['title'] ) ? strip_tags( $new_instance['title'] ) : '';
$instance['mode'] = in_array( $new_instance['mode'], array_keys( $this->mode_variation ), true ) ? $new_instance['mode'] : 'r';
$instance['appid'] = preg_match( Push7_Subscribe_Button::APP_ID_PATTERN_PREG, $new_instance['appid'] ) === 1 ? $new_instance['appid'] : '';
return $instance;
}
}