/**
  * for save options
  *
  * @param array $options_in
  *
  * @return Push7_Subscribe_Button_Options
  */
 public static function create_options($options_in)
 {
     if (!is_array($options_in)) {
         if ($options_in instanceof static) {
             $options_in = get_object_vars($options_in);
         } else {
             throw new RuntimeException('Invalid action.');
         }
     }
     $options['appid'] = empty($options_in['appid']) ? '' : $options_in['appid'];
     $options['enable_social_buzz'] = empty($options_in['enable_social_buzz']) ? false : ('true' === $options_in['enable_social_buzz'] ? true : ('on' === $options_in['enable_social_buzz'] ? true : (true === $options_in['enable_social_buzz'] ? true : false)));
     $options['social_buzz_message'] = empty($options_in['social_buzz_message']) ? '' : $options_in['social_buzz_message'];
     $options['social_buzz_mode'] = !empty($options_in['social_buzz_mode']) && in_array($options_in['social_buzz_mode'], array_keys(Push7_Subscribe_Button::get_sbztypes()), true) ? $options_in['social_buzz_mode'] : null;
     if (empty($options_in['social_buzz_posttype']) or !is_array($options_in['social_buzz_posttype'])) {
         $options['social_buzz_posttype'] = array();
     } else {
         $post_types = get_post_types();
         foreach ($options_in['social_buzz_posttype'] as $post_type) {
             if (in_array($post_type, $post_types, true)) {
                 $options['social_buzz_posttype'][] = $post_type;
             }
         }
     }
     return new self($options);
 }
 public function render_sbz_mode()
 {
     $current = \Push7_Subscribe_Button_Options::get_options()->social_buzz_mode;
     echo '<select name="' . \Push7_Subscribe_Button::PLUGIN_OPTIONS . '[social_buzz_mode]" id="push7ssb_sbz_mode">';
     foreach (\Push7_Subscribe_Button::get_sbztypes() as $slug => $attrs) {
         printf('<option value="%s" %s>%s</option>', $slug, selected($slug, $current, false), $attrs['name']);
     }
     echo '</select>';
 }