$instance Widget instance options. * * @return void */ public function fields( $widget, $ret, $instance ) { $allowed_user_roles = allowed_user_roles(); wp_nonce_field( 'content-control-widget-editor-nonce', 'content-control-widget-editor-nonce' ); $which_users_options = [ '' => __( 'Everyone', 'content-control' ), 'logged_out' => __( 'Logged Out Users', 'content-control' ), 'logged_in' => __( 'Logged In Users', 'content-control' ), ]; $instance = parse_widget_options( $instance ); ?>


$label ) : ?>

$instance Widget instance options. * @param array $new_instance New widget instance options. * @param array $old_instance Old widget instance options. * * @return array|bool */ public function save( $instance, $new_instance, $old_instance ) { if ( isset( $_POST['content-control-widget-editor-nonce'] ) && wp_verify_nonce( wp_unslash( sanitize_key( $_POST['content-control-widget-editor-nonce'] ) ), 'content-control-widget-editor-nonce' ) ) { $new_instance = parse_widget_options( $new_instance ); $instance['which_users'] = $new_instance['which_users']; $instance['roles'] = $new_instance['roles']; if ( 'logged_in' === $instance['which_users'] ) { $allowed_roles = allowed_user_roles(); // Validate chosen roles and remove non-allowed roles. foreach ( (array) $instance['roles'] as $key => $role ) { if ( ! array_key_exists( $role, $allowed_roles ) ) { unset( $instance['roles'][ $key ] ); } } } else { unset( $instance['roles'] ); } } else { // Failed validation, use old instance. $old_instance = parse_widget_options( $old_instance ); $instance['which_users'] = $old_instance['which_users']; if ( empty( $old_instance['roles'] ) ) { unset( $instance['roles'] ); } else { $instance['roles'] = $old_instance['roles']; } } return $instance; } }