/*
Plugin Name: VaultPress 002 - CreatorCore
Description: Offline-first creator studio for WordPress. Create and preview pages, products, and content locally. Export and sync when ready.
Version: 0.2
Author: Agency002
*/
if (!defined('ABSPATH')) exit;
class VaultPress002CreatorCore {
public function __construct() {
add_action('admin_menu', array($this, 'add_admin_menu'));
add_action('init', array($this, 'register_vault_entry_type'));
add_action('add_meta_boxes', array($this, 'add_vault_meta_boxes'));
add_action('save_post', array($this, 'save_vault_entry'));
add_action('admin_enqueue_scripts', array($this, 'enqueue_assets'));
}
public function add_admin_menu() {
add_menu_page(
'VaultPress 002',
'🧿 VaultPress 002',
'manage_options',
'vaultpress002',
array($this, 'vault_dashboard'),
'dashicons-shield-alt',
3
);
}
public function vault_dashboard() {
echo '
VaultPress 002 - CreatorCore
';
echo '
Welcome to your private creator studio. Draft, export, and prepare to sync your content.
';
echo '
+ New Vault Entry';
echo '
';
}
public function register_vault_entry_type() {
register_post_type('vault_entry', array(
'labels' => array(
'name' => 'Vault Entries',
'singular_name' => 'Vault Entry'
),
'public' => false,
'show_ui' => true,
'has_archive' => false,
'rewrite' => false,
'supports' => array('title', 'editor', 'custom-fields'),
'menu_icon' => 'dashicons-archive'
));
}
public function add_vault_meta_boxes() {
add_meta_box('vault_meta', 'Vault Settings', array($this, 'render_meta_box'), 'vault_entry', 'side');
}
public function render_meta_box($post) {
$type = get_post_meta($post->ID, '_vault_type', true);
echo '';
echo '';
}
public function save_vault_entry($post_id) {
if (array_key_exists('vault_type', $_POST)) {
update_post_meta($post_id, '_vault_type', sanitize_text_field($_POST['vault_type']));
}
}
public function enqueue_assets() {
wp_enqueue_style('vaultpress002-style', plugin_dir_url(__FILE__) . 'css/vault-style.css');
wp_enqueue_script('vaultpress002-script', plugin_dir_url(__FILE__) . 'js/vault-script.js', array('jquery'), false, true);
}
}
new VaultPress002CreatorCore();