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;
							 |