' . esc_html__( 'Smart FAQ Schema', 'accordly-smart-faq-schema' ), [ $this, 'render_meta_box' ], $pt, 'normal', 'high' ); } } /* ------------------------------------------------------------------ */ /* Meta Box HTML */ /* ------------------------------------------------------------------ */ public function render_meta_box( $post ) { wp_nonce_field( 'sfaq_save_meta_' . $post->ID, 'sfaq_nonce' ); $items = get_post_meta( $post->ID, '_sfaq_items', true ); $schema_enabled = get_post_meta( $post->ID, '_sfaq_schema_enabled', true ); // '1' | '0' | '' $faq_visible = get_post_meta( $post->ID, '_sfaq_visible', true ); // '1' | '0' | '' $custom_title = get_post_meta( $post->ID, '_sfaq_title', true ); $title_enabled = get_post_meta( $post->ID, '_sfaq_title_enabled', true ); // '1' | '0' | '' if ( ! is_array( $items ) ) $items = []; $global_schema = SFAQ_Plugin::get_setting( 'schema_enabled', '1' ); $global_visible = SFAQ_Plugin::get_setting( 'faq_visible', '1' ); $global_title_e = SFAQ_Plugin::get_setting( 'faq_title_enabled', '1' ); $global_title_t = SFAQ_Plugin::get_setting( 'faq_title_text', 'Frequently Asked Questions' ); // Resolve effective values (per-post overrides global, empty = use global) $eff_schema = $schema_enabled !== '' ? $schema_enabled : $global_schema; $eff_visible = $faq_visible !== '' ? $faq_visible : $global_visible; $eff_title_e = $title_enabled !== '' ? $title_enabled : $global_title_e; ?>
! empty( trim( $r['question'] ?? '' ) ) ) ); /* translators: %d: number of FAQs */ echo esc_html( sprintf( _n( '%d FAQ', '%d FAQs', $cnt, 'accordly-smart-faq-schema' ), $cnt ) ); ?>
'', 'answer' => '' ]; } foreach ( $items as $i => $item ) { $this->render_faq_row( $i, $item ); } ?>

' . ( $global_schema ? esc_html__( 'On', 'accordly-smart-faq-schema' ) : esc_html__( 'Off', 'accordly-smart-faq-schema' ) ) . '' ); ?>

$q, 'answer' => $a ]; } update_post_meta( $post_id, '_sfaq_items', $clean_items ); // --- Per-post options --- $schema_enabled = isset( $_POST['sfaq_schema_enabled'] ) ? sanitize_key( $_POST['sfaq_schema_enabled'] ) : ''; $faq_visible = isset( $_POST['sfaq_visible'] ) ? sanitize_key( $_POST['sfaq_visible'] ) : ''; $title_enabled = isset( $_POST['sfaq_title_enabled'] ) ? sanitize_key( $_POST['sfaq_title_enabled'] ) : ''; $custom_title = isset( $_POST['sfaq_title'] ) ? sanitize_text_field( wp_unslash( $_POST['sfaq_title'] ) ) : ''; // Only valid values if ( ! in_array( $schema_enabled, [ '1', '0', '' ], true ) ) $schema_enabled = ''; if ( ! in_array( $faq_visible, [ '1', '0', '' ], true ) ) $faq_visible = ''; if ( ! in_array( $title_enabled, [ '1', '0', '' ], true ) ) $title_enabled = ''; update_post_meta( $post_id, '_sfaq_schema_enabled', $schema_enabled ); update_post_meta( $post_id, '_sfaq_visible', $faq_visible ); update_post_meta( $post_id, '_sfaq_title_enabled', $title_enabled ); update_post_meta( $post_id, '_sfaq_title', $custom_title ); } }