121 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace W3TCExample;
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 * Backend functionality of an extension.
 | 
						|
 * This class is loaded only for wp-admin/ requests
 | 
						|
 */
 | 
						|
class Extension_Example_Admin {
 | 
						|
	/**
 | 
						|
	 * w3tc_extensions filter handler
 | 
						|
	 *
 | 
						|
	 * @param array   $extensions array of extension descriptors to fill
 | 
						|
	 * @param Config  $config     w3-total-cache configuration
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	static public function w3tc_extensions( $extensions, $config ) {
 | 
						|
		$extensions['example'] = array (
 | 
						|
			'name' => 'Example Extension',
 | 
						|
			'author' => 'W3 EDGE',
 | 
						|
			'description' => __( 'Example extension' ),
 | 
						|
			'author_uri' => 'https://www.w3-edge.com/',
 | 
						|
			'extension_uri' => 'https://www.w3-edge.com/',
 | 
						|
			'extension_id' => 'example',
 | 
						|
			'settings_exists' => true,
 | 
						|
			'version' => '1.0',
 | 
						|
			'enabled' => true,
 | 
						|
			'requirements' => '',
 | 
						|
			'path' => 'w3-total-cache-example/Extension_Example.php'
 | 
						|
		);
 | 
						|
 | 
						|
		return $extensions;
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Entry point of extension for wp-admin/ requests
 | 
						|
	 * Called from Extension_Example.php
 | 
						|
	 */
 | 
						|
	public function run() {
 | 
						|
		// handle settings page of this extension
 | 
						|
		add_action( 'w3tc_extension_page_example', array(
 | 
						|
				$this,
 | 
						|
				'w3tc_extension_page'
 | 
						|
			) );
 | 
						|
 | 
						|
		// get control when configuration is changed by user
 | 
						|
		add_action( 'w3tc_config_ui_save', array(
 | 
						|
				$this,
 | 
						|
				'w3tc_config_ui_save'
 | 
						|
			), 10, 2 );
 | 
						|
 | 
						|
		// Register widget on W3 Total Cache Dashboard page
 | 
						|
		add_action( 'w3tc_widget_setup', array(
 | 
						|
				$this,
 | 
						|
				'w3tc_widget_setup'
 | 
						|
			) );
 | 
						|
 | 
						|
		// get control when extension is deactivated
 | 
						|
		add_action( 'w3tc_deactivate_extension_example', array(
 | 
						|
				$this, 'w3tc_deactivate_extension' ) );
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Show settings page
 | 
						|
	 */
 | 
						|
	public function w3tc_extension_page() {
 | 
						|
		include dirname( __FILE__ ) . '/Extension_Example_Page_View.php';
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Get control when configuration is changed by user
 | 
						|
	 */
 | 
						|
	public function w3tc_config_ui_save( $config, $old_config ) {
 | 
						|
		if ( $config->get( array( 'example', 'is_title_postfix' ) ) !=
 | 
						|
			$old_config->get( array( 'example', 'is_title_postfix' ) ) ||
 | 
						|
			$config->get( array( 'example', 'title_postfix' ) ) !=
 | 
						|
			$old_config->get( array( 'example', 'title_postfix' ) ) ) {
 | 
						|
			// flush all content caches, since our extension will now alter
 | 
						|
			// content
 | 
						|
			w3tc_flush_posts();
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Registers widget on W3 Total Cache Dashboard page
 | 
						|
	 */
 | 
						|
	public function w3tc_widget_setup() {
 | 
						|
		$screen = get_current_screen();
 | 
						|
		add_meta_box( 'example', 'example', array( $this, 'widget_content' ),
 | 
						|
			$screen, 'normal', 'core' );
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Renders content of widget
 | 
						|
	 */
 | 
						|
	public function widget_content() {
 | 
						|
		echo "Example extension's widget";
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Called when extension is deactivated.
 | 
						|
	 * Perform a cleanup here
 | 
						|
	 */
 | 
						|
	public function w3tc_deactivate_extension() {
 | 
						|
	}
 | 
						|
}
 |