<?php /** * SportsPress Text Settings * * @author ThemeBoy * @category Admin * @package SportsPress/Admin * @version 1.6 */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } if ( ! class_exists( 'SP_Settings_Text' ) ) : /** * SP_Settings_Text */ class SP_Settings_Text extends SP_Settings_Page { /** * Constructor */ public function __construct() { $this->id = 'text'; $this->label = esc_attr__( 'Text', 'sportspress' ); add_filter( 'sportspress_settings_tabs_array', array( $this, 'add_settings_page' ), 20 ); add_action( 'sportspress_settings_' . $this->id, array( $this, 'output' ) ); add_action( 'sportspress_settings_save_' . $this->id, array( $this, 'save' ) ); } /** * Get settings array * * @return array */ public function get_settings() { $settings = array( array( 'title' => esc_attr__( 'Text', 'sportspress' ), 'type' => 'title', 'desc' => esc_attr__( 'The following options affect how words are displayed on the frontend.', 'sportspress' ), 'id' => 'text_options', ), ); $strings = sp_get_text_options(); $options = get_option( 'sportspress_text' ); $options = array(); foreach ( $strings as $string ) : $options[] = array( 'title' => $string, 'id' => 'sportspress_text[' . $string . ']', 'default' => '', 'placeholder' => $string, 'value' => sp_array_value( $options, $string, null ), 'type' => 'text', ); endforeach; $settings = array_merge( $settings, apply_filters( 'sportspress_text_options', $options ), array( array( 'type' => 'sectionend', 'id' => 'text_options', ), ) ); return apply_filters( 'sportspress_text_settings', $settings ); // End event settings } /** * Save settings */ public function save() { if ( isset( $_POST['sportspress_text'] ) ) { update_option( 'sportspress_text', array_map( 'sanitize_text_field', array_map( 'wp_unslash', $_POST['sportspress_text'] ) ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput } } } endif; return new SP_Settings_Text();