88 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
class fourthwall_settings {
 | 
						|
 | 
						|
	public function __construct() {
 | 
						|
 | 
						|
		add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
 | 
						|
		add_action( 'admin_init', array( $this, 'init_settings'  ) );
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	public function add_admin_menu() {
 | 
						|
 | 
						|
		add_menu_page(
 | 
						|
			esc_html__( 'Fourthwall Store Embed', 'fourthwall_text_domain' ),
 | 
						|
			esc_html__( 'FourthWall Embed', 'fourthwall_text_domain' ),
 | 
						|
			'manage_options',
 | 
						|
			'fwembed',
 | 
						|
			array( $this, 'fourthwall_page_layout' ),
 | 
						|
			'dashicons-store',
 | 
						|
			10
 | 
						|
		);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	public function init_settings() {
 | 
						|
 | 
						|
		register_setting(
 | 
						|
			'fourthwall_settings_group',
 | 
						|
			'fourthwall_settings_name'
 | 
						|
		);
 | 
						|
 | 
						|
		add_settings_section(
 | 
						|
			'fourthwall_settings_name_section',
 | 
						|
			'',
 | 
						|
			false,
 | 
						|
			'fourthwall_settings_name'
 | 
						|
		);
 | 
						|
 | 
						|
		add_settings_field(
 | 
						|
			'fourth_url',
 | 
						|
			__( 'Store URL', 'fourthwall_text_domain' ),
 | 
						|
			array( $this, 'render_fourth_url_field' ),
 | 
						|
			'fourthwall_settings_name',
 | 
						|
			'fourthwall_settings_name_section'
 | 
						|
		);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	public function fourthwall_page_layout() {
 | 
						|
 | 
						|
		// Check required user capability
 | 
						|
		if ( !current_user_can( 'manage_options' ) )  {
 | 
						|
			wp_die( esc_html__( 'You do not have sufficient permissions to access this page.', 'fourthwall_text_domain' ) );
 | 
						|
		}
 | 
						|
 | 
						|
		// Admin Page Layout
 | 
						|
		echo '<div class="wrap">' . "\n";
 | 
						|
		echo '	<h1>' . get_admin_page_title() . '</h1>' . "\n";
 | 
						|
		echo '	<form action="options.php" method="post">' . "\n";
 | 
						|
 | 
						|
		settings_fields( 'fourthwall_settings_group' );
 | 
						|
		do_settings_sections( 'fourthwall_settings_name' );
 | 
						|
		submit_button();
 | 
						|
 | 
						|
		echo '	</form>' . "\n";
 | 
						|
		echo '</div>' . "\n";
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	function render_fourth_url_field() {
 | 
						|
 | 
						|
		// Retrieve data from the database.
 | 
						|
		$options = get_option( 'fourthwall_settings_name' );
 | 
						|
 | 
						|
		// Set default value.
 | 
						|
		$value = isset( $options['fourth_url'] ) ? $options['fourth_url'] : '';
 | 
						|
 | 
						|
		// Field output.
 | 
						|
		echo '<input type="url" name="fourthwall_settings_name[fourth_url]" class="regular-text fourth_url_field" placeholder="' . esc_attr__( 'https://some-shop.fourthwall.com', 'fourthwall_text_domain' ) . '" value="' . esc_attr( $value ) . '">';
 | 
						|
		echo '<p class="description">' . __( 'The fourth wall URL', 'fourthwall_text_domain' ) . '</p>';
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
new fourthwall_settings;
 |