Files
roi-theme/wp-content/plugins/sociallocker-next-premium/bizpanda/libs/factory/metaboxes/metabox.class.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

227 lines
5.7 KiB
PHP
Executable File

<?php
/**
* The file contains a base class for all metaboxe.
*
* @author Paul Kashtanoff <paul@byonepress.com>
* @copyright (c) 2013, OnePress Ltd
*
* @package factory-metaboxes
* @since 1.0.0
*/
/**
* The base class for all metaboxes.
*
* @link http://codex.wordpress.org/Function_Reference/add_meta_box
* @since 1.0.0
*/
abstract class FactoryMetaboxes321_Metabox {
/**
* Id of the metabox.
* Be default, the current class name is used.
*
* @since 1.0.0
* @var string
*/
public $id = null;
/**
* A visible title of the metabox.
*
* @since 1.0.0
* @var string
*/
public $title = '';
/**
* The part of the page where the edit screen
* section should be shown ('normal', 'advanced', or 'side').
*
* @since 1.0.0
* @var string
*/
public $context = 'normal';
/**
* The priority within the context where the boxes
* should show ('high', 'core', 'default' or 'low')
*
* @since 1.0.0
* @var string
*/
public $priority = 'default';
/**
* Post types for which a metabox should be shown.
*
* @since 1.0.0
* @var array
*/
public $postTypes = array();
/**
* Scripts that should be include on the page where the metabox will be shown.
*
* @since 1.0.0
* @var Factory325_ScriptList
*/
public $scripts;
/**
* Styles that should be include on the page where the metabox will be shown.
*
* @since 1.0.0
* @var Factory325_StyleList
*/
public $styles;
/**
* Stores a state of assets (connected of not).
*
* @since 1.0.0
* @var bool
*/
protected $isConnected = false;
/**
* Creates a new instance of a metabox.
*
* @since 1.0.0
*/
public function __construct( $plugin ) {
$this->plugin = $plugin;
$this->id = empty($this->id) ? get_class($this) : $this->id;
}
/**
* Adds a new post type where the metabox should appear.
*
* @since 1.0.0
* @param string $typeName
*/
public function addPostType( $typeName ) {
if ( !in_array($typeName, $this->postTypes) ) {
$this->postTypes[] = $typeName;
}
}
/**
* Configures a metabox.
*
* @since 1.0.0
* @param Factory325_ScriptList $scripts A set of scripts to include.
* @param Factory325_StyleList $styles A set of style to include.
* @return void
*/
public function configure( $scripts, $styles) {
// method must be overriden in the derived classed.
}
/**
* Registers this metabox to show.
*
* @since 1.0.0
* @return void
*/
public function connect() {
if ( $this->isConnected ) return;
$this->isConnected = true;
$this->scripts = $this->plugin->newScriptList();
$this->styles = $this->plugin->newStyleList();
$this->configure( $this->scripts, $this->styles );
$this->includeScriptsAndStyles();
}
/**
* Includes scripts and styles for a metabox.
*
* @since 1.0.0
* @return void
*/
public function includeScriptsAndStyles() {
global $post;
if ( $this->scripts->isEmpty() && $this->styles->isEmpty() ) return;
if ( !in_array( $post->post_type, $this->postTypes)) return;
$this->scripts->connect();
$this->styles->connect();
}
/**
* Saves metabox data.
*
* @since 1.0.0
* @param int $post_id
* @return integer A post id.
*/
public function actionSavePost( $post_id ) {
$post_type = $_POST['post_type'];
if ( !in_array( $post_type, $this->postTypes ) ) return $post_id;
// verify the nonce before proceeding
$className = strtolower( get_class($this) );
$nonceName = $className . '_factory_nonce';
$nonceValue = $className . '_factory';
if ( !isset( $_POST[$nonceName] ) || !wp_verify_nonce( $_POST[$nonceName], $nonceValue ) )
return $post_id;
if ( wp_is_post_revision( $post_id ) ) return $post_id;
// get the post type object.
$post_type = get_post_type_object( $post_type );
// check if the current user has permission to edit the post.
if ( !current_user_can( $post_type->cap->edit_post, $post_id ) ) return $post_id;
// all right, save data.
$this->save( $post_id );
}
/**
* Shows content of a metabox.
*
* @since 1.0.0
* @return void
*/
public function show() {
// security nonce
$className = strtolower( get_class($this) );
wp_nonce_field( $className . '_factory', $className . '_factory_nonce' );
ob_start();
$this->html();
$content = ob_get_clean();
echo $content;
}
/**
* [virtual] Prints html content of a metabox.
*
* The method must be overridden in the derived classes.
*
* @since 1.0.0
* @return void
*/
public function html() {
echo 'Define the method "html" in your metabox class.';
}
/**
* [virtual] Saves metabox data.
*
* The method must be overridden in the derived classes.
*
* @since 1.0.0
* @param $postId A post id.
* @return void
*/
public function save( $postId ) {}
}