post_type, array( 'wppb-rf-cpt', 'wppb-epf-cpt' ), true ) ) return $use; return wppb_fb_is_active_for( $post->post_type ) ? $use : false; } /** * Register under `wppb_toolbox_forms_settings` so one Save Changes persists both. */ add_action( 'admin_init', 'wppb_fb_register_editor_mode_setting' ); function wppb_fb_register_editor_mode_setting() { register_setting( 'wppb_toolbox_forms_settings', 'wppb_forms_editor_mode', array( 'type' => 'array', 'sanitize_callback' => 'wppb_fb_sanitize_editor_mode', 'default' => array(), ) ); } /** * Only known CPT keys and modern|classic values; missing keys default to modern. * * @param mixed $input Raw submitted value (expected: array). * @return array */ function wppb_fb_sanitize_editor_mode( $input ) { $allowed = array( 'modern', 'classic' ); $out = array(); foreach ( array( 'wppb-rf-cpt', 'wppb-epf-cpt' ) as $post_type ) { $submitted = ( is_array( $input ) && isset( $input[ $post_type ] ) ) ? sanitize_key( $input[ $post_type ] ) : 'modern'; $out[ $post_type ] = in_array( $submitted, $allowed, true ) ? $submitted : 'modern'; } return $out; } /* * No write-back to wppb_module_settings: the read filter already forces both * gates to 'show'. Writing that filtered value would permanently rewrite a site * option the user never set. */