bogoworkshop-tools

WPTurbo » Snippets » bogoworkshop-tools
0

Created with:

Visibility: 

public

Creator: Goran

Customize with WPTurbo AI
X

Add Snippet To Project

New Project
Add To Existing Project
					<?php
/**
 * Plugin Name: BogoWorkshop Tools
 * Description: Utility toolkit for WooCommerce and site management. Modular admin, split by function.
 * Version: 2.0.0
 * Author: bogoworkshop
 * Text Domain: bogoworkshop-tools
 */

// Exit if accessed directly outside of WordPress.
if (!defined('ABSPATH')) exit;

// Load modular plugin components.
require_once __DIR__ . '/includes/shortcodes.php';
require_once __DIR__ . '/includes/woo-customizations.php';
require_once __DIR__ . '/includes/output-css.php';
//require_once __DIR__ . '/includes/settings-side-menu.php'; // <-- Important for Slide Menu settings

// Admin Page Callbacks: Each settings page is modular and included below.

function bw_tools_settings_general() { 
    include __DIR__ . '/includes/settings-general.php'; 
  //  include __DIR__ . '/includes/functions/source-general.php'; 
 
}
function bw_tools_settings_login_visibility() {
    include __DIR__ . '/includes/login-visibility/admin-login-visibility.php'; 
    include __DIR__ . '/includes/login-visibility/functions-login-visibility.php';   
}
function bw_tools_settings_woocommerce() { 
    include __DIR__ . '/includes/woocommerce/admin-woocommerce.php'; 
    include __DIR__ . '/includes/woocommerce/functions-woocommerce.php'; 
   
}
function bw_tools_settings_shortcodes() {
    include __DIR__ . '/includes/shortcodes/admin-shortcodes.php'; 
    include __DIR__ . '/includes/shortcodes/functions-shortcodes.php'; 
   
}
function bw_tools_settings_jetpack() {
    include __DIR__ . '/includes/settings-jetpack.php'; 
   // include __DIR__ . '/includes/functions/source-jetpack.php'; 
  
}
function bw_tools_settings_scheduler() {
    include __DIR__ . '/includes/settings-scheduler.php'; 
    //include __DIR__ . '/includes/functions/source-scheduler.php'; 
    
}
function bw_tools_settings_login() {
    include __DIR__ . '/includes/settings-redirections.php'; 
   // include __DIR__ . '/includes/functions/source-redirections.php'; 

}
function bw_tools_settings_qr() {
    include __DIR__ . '/includes/settings-qr.php'; 
  //  include __DIR__ . '/includes/functions/source-qr.php'; 

}

function bw_tools_settings_tools() {
    include __DIR__ . '/includes/settings-tools.php'; 
   // include __DIR__ . '/includes/functions/source-tools.php'; 
   
}
function bw_tools_settings_login_registration()  {
    include __DIR__ . '/includes/settings-login-registration.php'; 
   // include __DIR__ . '/includes/functions/source-login-registration.php'; 
  
}
function bw_tools_settings_vacation_mode() {
    include __DIR__ . '/includes/settings-vacation-mode.php';
   // include __DIR__ . '/includes/functions/source-vacation-mode.php'; 

}
/*function bw_tools_settings_slide_menu() {
    include __DIR__ . '/includes/settings-side-menu.php';
    include __DIR__ . '/includes/functions/source-side-menu.php'; 

}*/
// --------- SLIDE MENU SETTINGS CALLBACK ---------
/*
if (!function_exists('bw_tools_settings_slide_menu')) {
    function bw_tools_settings_slide_menu() {
        // You can further break this into a separate file if desired.
        ?>
        <div class="wrap">
            <h1><?php esc_html_e('Slide Menu Settings', 'bogoworkshop-tools'); ?></h1>
            <p><?php esc_html_e('This is your Slide Menu settings page. You can add your options here.', 'bogoworkshop-tools'); ?></p>
            <!-- Later: add form fields/settings for Slide Menu here -->
        </div>
        <?php
    }
}*/
// -----------------------------------------------
if ( file_exists(__DIR__ . 'includes/funnels/funnels.php') ) {
    require_once __DIR__ . 'includes/funnels/funnels.php';
}
// Centralized menu configuration
function bw_tools_get_menu_items() {
    return [
        'general' => [
            'page_title' => 'General',
            'menu_title' => 'General',
            'callback'   => 'bw_tools_settings_general',
            'is_main'    => true,
        ],
        'login-visibility' => [
            'page_title' => 'Login Visibility CSS',
            'menu_title' => 'Login Visibility CSS',
            'callback'   => 'bw_tools_settings_login_visibility',
        ],
        'woocommerce' => [
            'page_title' => 'WooCommerce',
            'menu_title' => 'WooCommerce',
            'callback'   => 'bw_tools_settings_woocommerce',
        ],
        'shortcodes' => [
            'page_title' => 'Shortcodes',
            'menu_title' => 'Shortcodes',
            'callback'   => 'bw_tools_settings_shortcodes',
        ],
        'jetpack' => [
            'page_title' => 'Jetpack',
            'menu_title' => 'Jetpack',
            'callback'   => 'bw_tools_settings_jetpack',
        ],
        'scheduler' => [
            'page_title' => 'Scheduler',
            'menu_title' => 'Scheduler',
            'callback'   => 'bw_tools_settings_scheduler',
        ],
        'login' => [
            'page_title' => 'Login/Redirects',
            'menu_title' => 'Login/Redirects',
            'callback'   => 'bw_tools_settings_login',
        ],
        'qr' => [
            'page_title' => 'QR Code',
            'menu_title' => 'QR Code',
            'callback'   => 'bw_tools_settings_qr',
        ],
        'tools' => [
            'page_title' => 'Tools',
            'menu_title' => 'Tools',
            'callback'   => 'bw_tools_settings_tools',
        ],
        'login-registration' => [
            'page_title' => 'Login/Registration Settings',
            'menu_title' => 'Login/Registration',
            'callback'   => 'bw_tools_settings_login_registration',
        ],
      /* 'slide-menu' => [
            'page_title' => 'Slide Menu Settings',
            'menu_title' => 'Slide Menu',
            'callback'   => 'bw_tools_settings_slide_menu', // <-- This is now always defined
        ],*/
        'vacation-mode' => [
        'page_title' => 'Vacation Mode',
        'menu_title' => 'Vacation Mode',
        'callback'   => 'bw_tools_settings_vacation_mode',
        ]
    ];
}

// Register admin menu and all plugin submenus.
add_action('admin_menu', function() {
    $menu_items = bw_tools_get_menu_items();
    $main_slug = 'bogoworkshop-tools';
    $capability = 'manage_options';

    // Add main menu
    add_menu_page(
        'BogoWorkshop Tools',
        'Bogo Tools',
        $capability,
        $main_slug,
        $menu_items['general']['callback'],
        'dashicons-admin-tools'
    );

    // Add all submenu items
    foreach ($menu_items as $key => $item) {
        $slug = ($key === 'general') ? $main_slug : $main_slug . '-' . $key;
        add_submenu_page(
            $main_slug,
            $item['page_title'],
            $item['menu_title'],
            $capability,
            $slug,
            $item['callback']
        );
    }
});

// Load admin panel CSS/JS on BogoWorkshop Tools pages.
add_action('admin_enqueue_scripts', function($hook) {
    if (strpos($hook, 'bogoworkshop-tools') !== false) {
        wp_enqueue_style(
            'bw-admin-style',
            plugin_dir_url(__FILE__) . 'assets/css/admin-style.css',
            [],
            '1.2.0'
        );
       /* wp_enqueue_style(
            'bw-admin-style',
            plugin_dir_url(__FILE__) . '/includes/output-css.php',
            [],
            '1.2.0'
        );*/
        wp_enqueue_script(
            'bw-admin-script',
            plugin_dir_url(__FILE__) . 'assets/js/admin-script.js',
            ['jquery'],
            '1.2.0',
            true
        );
       /* if (strpos($hook, 'slide-menu') !== false) {
            wp_enqueue_style('wp-color-picker');
            wp_enqueue_script('wp-color-picker');
        }*/
    }
});

// Load frontend plugin styles and scripts globally.
function bw_tools_enqueue_frontend_assets() {
    wp_enqueue_style(
        'bogy-frontend-style',
        plugin_dir_url(__FILE__) . 'assets/css/frontend.css',
        [],
        '1.2.0'
    );
    wp_enqueue_script(
        'bogy-frontend-js',
        plugin_dir_url(__FILE__) . 'assets/js/frontend.js',
        ['jquery'],
        '1.2.0'
    );
}
add_action('wp_enqueue_scripts', 'bw_tools_enqueue_frontend_assets');

// Register slide menu options on activation.
/*
register_activation_hook(__FILE__, 'bw_tools_activate_slide_menu');
function bw_tools_activate_slide_menu() {
    add_option('slide_menu_position', 'left');
    add_option('slide_menu_width', 300);
    add_option('slide_menu_level1_normal', '#ffffff');
    add_option('slide_menu_level1_hover', '#3498db');
    add_option('slide_menu_level1_active', '#2980b9');
    add_option('slide_menu_level2_normal', '#f5f5f5');
    add_option('slide_menu_level2_hover', '#3498db');
    add_option('slide_menu_level2_active', '#2980b9');
    add_option('slide_menu_level3_normal', '#e9e9e9');
    add_option('slide_menu_level3_hover', '#3498db');
    add_option('slide_menu_level3_active', '#2980b9');
    add_option('slide_menu_bg_color', '#2c3e50');
}


*/
				

Register an account to save your snippets or go Pro to get more features.