• 1400/02/08

ساخت منو تنظیمات برای قالب وردپرس :

با سلام

در پنل ادمین یک منو برای قالب ایجاد شده که زیر منو تنظیمات داره و می خواهم با کلیک روی تنظیمات در صفحه ای که باز میشه یک منو مثل منوی پنل ادمین وردپرس داشته باشم

 

  • 1400/02/08
  • ساعت 14:26

سلام بر شما ، میخواید پنل تنظیمات قالب درست کنید؟


  • 1400/02/08
  • ساعت 14:38

بله


  • 1400/02/08
  • ساعت 14:46

دوست عزیز این مورد رو نمیشه به صورت متن توضیح داد ، به زودی آموزش درست کردن ادمین پیج برای همین قالب رو قرار میدیم

 

ولی اگر مایل هستید اطلاعات بیشتری کسب کنید به این لینک نگاهی بندازید

https://developer.wordpress.org/reference/functions/add_menu_page/


  • 1400/02/08
  • ساعت 14:54

منظورم اینه مثل منوی اصلی که از توابع وردپرس استفاده میشه مثل

add_menu_page

add_submenu_page

 

برای منو پنل تنظیمات هم از توابع و هوک وردپرس استفاده میشه؟

و اگه جواب بله هست از چه تابع و هوک استفاده میشه تا سرچ کنم دربارش اطلاعات بدست بیارم


  • 1400/02/08
  • ساعت 15:03

اره ، یه اکشن میزنید به admin_menu و تابع مورد نظر رو برای فراخوانی بهش میدید

توی تابع مورد نظر هم از تابع add menu page  استفاده میکنید

 

function add_theme_options_panel(){
    global $theme_panel_option_page;
    $theme_panel_option_page = add_menu_page('تنظیمات قالب', 'تنظیمات قالب', 'manage_options', 'theme-options', 'add_theme_option_panel_function', 'dashicons-admin-generic');
}

add_action('admin_menu', 'add_theme_options_panel');

  • 1400/02/08
  • ساعت 17:24

باتشکر

برای ساخت منوی اصلی از  add menu page استفاده کرده بودم

برای منو داخلی میخاستم بدونم

 

اینجا منوی داخلی با html css درست کردم

 


  • 1400/02/08
  • ساعت 18:29

توی این کدی که نوشته شده به add_theme_option_panel_function دقت کن این همون تابعی هستش که موارد مورد نیاز رو توش مینویسیم. ولی همون طور که گفتم این موارد رو نمیشه با پرسش متنی توضیح داد .

من اخر محتوا کل کدهایی که برای یه قالب نوشتم رو میزارم میتونید بخونیدشون.

<?php
function jozve_theme_options_panel(){
    global $theme_panel_option_page;
    $theme_panel_option_page = add_menu_page('تنظیمات قالب', 'تنظیمات قالب', 'manage_options', 'theme-options', 'jozve_theme_option_panel_function', 'dashicons-admin-generic');
}

add_action('admin_menu', 'jozve_theme_options_panel');
function jozve_theme_option_panel_function(){
    echo '<div class="wrap"><div id="icon-options-general" class="icon32"><br></div> <h2>پنل تنظیمات</h2></div>';
    $withe_list = array(
        'index-page',
        'author-page',
        'single-page',
        'comment-like',
        'post-like',
        'main-slider',
        'slider-course',
        'login-register-page',
        'ads-setting',
        'social-network',
        'seo-page',
        'script',
        'install-license',
        'send-user-msg',
        'noti-bar-sitting',
        'store-index-page',
        'store-main-slider',
        'zarinpal',
        'vip-register',
        'user-panel',
        'theme-color',
        'sms-base-panel',
        'sms-enable-disable',
        'sms-system-test',
        'marketing-option',
        'information-complete',
    );

    $jozve_options = get_option('jozve_options');
    $default_tab = isset($_GET['tab']) && in_array($_GET['tab'], $withe_list) ? $_GET['tab'] : 'index-page';
    if (isset($_POST['op-panel-submit'])) {
        switch ($default_tab) {
            case 'index-page':
                $jozve_options['index-page']['jozve_copy_right_op'] = sanitize_text_field($_POST['jozve_copy_right_op']);
                $jozve_options['index-page']['index_search_show'] = $_POST['index_search_show'];
                $jozve_options['index-page']['show_site_logo'] = $_POST['show_site_logo'];
                $jozve_options['index-page']['site-logo'] = $_POST['site-logo'];
                $jozve_options['index-page']['index_videobox_show'] = $_POST['index_videobox_show'];
                $jozve_options['index-page']['fl1_script'] = base64_encode(esc_html($_POST['fl1_script']));
                $jozve_options['index-page']['fl1_script'] = base64_encode(str_replace('\\', '', $_POST['fl1_script']));
                $jozve_options['index-page']['fl2_script'] = base64_encode(str_replace('\\', '', $_POST['fl2_script']));
                $jozve_options['index-page']['footer_about'] = $_POST['footer_about'];
                $jozve_options['index-page']['qrcode'] = $_POST['qrcode'];
                $jozve_options['index-page']['vip_plan'] = $_POST['vip_plan'];
                $jozve_options['index-page']['footer-info'] = $_POST['footer-info'];
                $jozve_options['index-page']['video_show_count'] = $_POST['video_show_count'];
                $jozve_options['index-page']['qrcode_show'] = $_POST['qrcode_show'];
                $jozve_options['index-page']['our_plans'] = nl2br($_POST['our_plans']);
                $jozve_options['index-page']['show_nemad_logo'] = $_POST['show_nemad_logo'];
                break;
            case 'author-page':
                $jozve_options['author-page']['author_search_show'] = $_POST['author_search_show'];
                $jozve_options['author-page']['author_box_bio_show'] = $_POST['author_box_bio_show'];
                $jozve_options['author-page']['author_box_info_show'] = $_POST['author_box_info_show'];
                break;
            case 'social-network':
                $jozve_options['social-network']['telegram-url'] = sanitize_text_field($_POST['telegram-url']);
                $jozve_options['social-network']['telegram-show'] = $_POST['telegram-show'];
                $jozve_options['social-network']['inst-url'] = sanitize_text_field($_POST['inst-url']);
                $jozve_options['social-network']['instagram-show'] = $_POST['instagram-show'];
                $jozve_options['social-network']['linkedin-url'] = sanitize_text_field($_POST['linkedin-url']);
                $jozve_options['social-network']['linkedin-show'] = $_POST['linkedin-show'];
                $jozve_options['social-network']['facebook-url'] = sanitize_text_field($_POST['facebook-url']);
                $jozve_options['social-network']['facebook-show'] = $_POST['facebook-show'];
                $jozve_options['social-network']['twitter-url'] = sanitize_text_field($_POST['twitter-url']);
                $jozve_options['social-network']['twitter-show'] = $_POST['twitter-show'];
                $jozve_options['social-network']['google-plus-url'] = sanitize_text_field($_POST['google-plus-url']);
                $jozve_options['social-network']['google-plus-show'] = $_POST['google-plus-show'];

                $jozve_options['social-network']['whatsapp-url'] = sanitize_text_field($_POST['whatsapp-url']);
                $jozve_options['social-network']['whatsapp-show'] = $_POST['whatsapp-show'];

                $jozve_options['social-network']['aparat-url'] = sanitize_text_field($_POST['aparat-url']);
                $jozve_options['social-network']['aparat-show'] = $_POST['aparat-show'];

                break;
            case 'post-like':
                $jozve_options['post-like']['post_like_show'] = $_POST['post_like_show'];
                break;
            case 'comment-like':
                $jozve_options['comment-like']['comment_like_show'] = $_POST['comment_like_show'];
                break;
            case 'single-page':
                $jozve_options['single-page']['post_chanel-box-tel_show'] = $_POST['post_chanel-box-tel_show'];
                $jozve_options['single-page']['tel-box-title'] = $_POST['tel-box-title'];
                $jozve_options['single-page']['tel-box-btn-caption'] = $_POST['tel-box-btn-caption'];
                $jozve_options['single-page']['tel-box-link'] = $_POST['tel-box-link'];
                $jozve_options['single-page']['post_related_show'] = $_POST['post_related_show'];
                $jozve_options['single-page']['related-post-count'] = $_POST['related-post-count'];
                $jozve_options['single-page']['share_btn_show'] = $_POST['share_btn_show'];


                $jozve_options['single-page']['rrs_show'] = $_POST['rrs_show'];


                break;
            case 'main-slider':
                // begin seven host slide option
                // slide 1
                $jozve_options['main-slider']['shSlide1_img'] = $_POST['shSlide1_img'];
                $jozve_options['main-slider']['shSlide1_url'] = $_POST['shSlide1_url'];
                $jozve_options['main-slider']['shSlide1_alt'] = $_POST['shSlide1_alt'];
                // slide 2
                $jozve_options['main-slider']['shSlide2_img'] = $_POST['shSlide2_img'];
                $jozve_options['main-slider']['shSlide2_url'] = $_POST['shSlide2_url'];
                $jozve_options['main-slider']['shSlide2_alt'] = $_POST['shSlide2_alt'];
                // slide 3
                $jozve_options['main-slider']['shSlide3_img'] = $_POST['shSlide3_img'];
                $jozve_options['main-slider']['shSlide3_url'] = $_POST['shSlide3_url'];
                $jozve_options['main-slider']['shSlide3_alt'] = $_POST['shSlide3_alt'];
                // slide 4 add in jozve v5.9
                $jozve_options['main-slider']['shSlide4_img'] = $_POST['shSlide4_img'];
                $jozve_options['main-slider']['shSlide4_url'] = $_POST['shSlide4_url'];
                $jozve_options['main-slider']['shSlide4_alt'] = $_POST['shSlide4_alt'];
                // slide 5 add in jozve v5.9
                $jozve_options['main-slider']['shSlide5_img'] = $_POST['shSlide5_img'];
                $jozve_options['main-slider']['shSlide5_url'] = $_POST['shSlide5_url'];
                $jozve_options['main-slider']['shSlide5_alt'] = $_POST['shSlide5_alt'];
                // slide 6 add in jozve v5.9
                $jozve_options['main-slider']['shSlide6_img'] = $_POST['shSlide6_img'];
                $jozve_options['main-slider']['shSlide6_url'] = $_POST['shSlide6_url'];
                $jozve_options['main-slider']['shSlide6_alt'] = $_POST['shSlide6_alt'];

                // end seven host slide option
                break;

            case 'slider-course':
                // begin seven host slide option
                // slide 1
                $jozve_options['slider-course']['slider1_img_course'] = $_POST['slider1_img_course'];
                $jozve_options['slider-course']['slider1_url_course'] = $_POST['slider1_url_course'];
                $jozve_options['slider-course']['slider1_alt_course'] = $_POST['slider1_alt_course'];



                //Box Side Slider
                $jozve_options['slider-course']['slider1_image_course'] = $_POST['slider1_image_course'];
                $jozve_options['slider-course']['slider1_url_image'] = $_POST['slider1_url_image'];
                $jozve_options['slider-course']['slider1_alt_image'] = $_POST['slider1_alt_image'];
                // end seven host slide option
                break;

            case 'login-register-page':
                $jozve_options['login-register-page']['register-page-text'] = $_POST['register-page-text'];
                $jozve_options['login-register-page']['login-page-text'] = $_POST['login-page-text'];
                $jozve_options['login-register-page']['reset-page-text'] = $_POST['reset-page-text'];
                $jozve_options['login-register-page']['loginpage-term-link'] = $_POST['loginpage-term-link'];
                // add jozve 6.0.0 mohammadd **************************************************************
                $jozve_options['login-register-page']['recaptcha-visible'] = $_POST['recaptcha-visible'];
                $jozve_options['login-register-page']['recaptcha-site-key'] = $_POST['recaptcha-site-key'];
                $jozve_options['login-register-page']['recaptcha-secret-key'] = $_POST['recaptcha-secret-key'];
                //end jozve v6.0.0  **************************************************************************

                break;
            case 'seo-page':
                $jozve_options['seo-page']['jozve-favicon'] = $_POST['jozve-favicon'];
                $jozve_options['seo-page']['keyword-seo'] = $_POST['keyword-seo'];
                $jozve_options['seo-page']['description-seo'] = $_POST['description-seo'];
                $jozve_options['seo-page']['google-analytics'] = $_POST['google-analytics'];
                break;
            case 'script':
                $jozve_options['jozve-script']['header-script'] = $_POST['header-script'];
                $jozve_options['jozve-script']['footer-script'] = wp_normalize_path($_POST['footer-script']);
                break;
            case 'send-user-msg':
                $jozve_options['send-msg-user']['send_msg_on'] = $_POST['send_msg_on_or_off'];
                $jozve_options['send-msg-user']['msg_subject'] = $_POST['msg_subject'];
                $jozve_options['send-msg-user']['msg_sender_admin'] = $_POST['msg_sender_admin'];
                $jozve_options['send-msg-user']['msg_text'] = $_POST['msg_text'];
                $jozve_options['send-msg-user']['msg_att'] = $_POST['msg_att'];
                break;
            case 'noti-bar-sitting':
                $jozve_options['noti-bar-sitting']['noti-text'] = $_POST['noti-text'];
                $jozve_options['noti-bar-sitting']['noti-disable'] = $_POST['noti-disable'];
                $jozve_options['noti-bar-sitting']['noti-btn-text'] = $_POST['noti-btn-text'];
                $jozve_options['noti-bar-sitting']['noti-wrapper-color'] = $_POST['noti-wrapper-color'];
                $jozve_options['noti-bar-sitting']['noti-btn-color'] = $_POST['noti-btn-color'];
                $jozve_options['noti-bar-sitting']['noti-btn-link'] = $_POST['noti-btn-link'];
                $jozve_options['noti-bar-sitting']['noti-background'] = $_POST['noti-background'];
                break;
            case 'store-index-page':
                $jozve_options['store-index-page']['noti-banner-disable'] = $_POST['noti-banner-disable'];
                $jozve_options['store-index-page']['noti-banner-img'] = $_POST['noti-banner-img'];
                $jozve_options['store-index-page']['noti-banner-cat'] = $_POST['noti-banner-cat'];
                $jozve_options['store-index-page']['shipping-express-page'] = $_POST['shipping-express-page']; // begin store service section
                $jozve_options['store-index-page']['day-guarantee-page'] = $_POST['day-guarantee-page'];
                $jozve_options['store-index-page']['cod-page'] = $_POST['cod-page'];
                $jozve_options['store-index-page']['best-price'] = $_POST['best-price'];
                $jozve_options['store-index-page']['certificate'] = $_POST['certificate'];
                $jozve_options['store-index-page']['box-cat-1'] = $_POST['box-cat-1']; // begin store box category option
                $jozve_options['store-index-page']['box-cat-2'] = $_POST['box-cat-2'];
                $jozve_options['store-index-page']['box-cat-3'] = $_POST['box-cat-3'];
                $jozve_options['store-index-page']['box-cat-4'] = $_POST['box-cat-4'];

                $jozve_options['store-index-page']['layer1-cat'] = $_POST['layer1-cat'];  // begin store layer cat and pic
                $jozve_options['store-index-page']['layer1-cat-img'] = $_POST['layer1-cat-img'];

                $jozve_options['store-index-page']['layer2-cat'] = $_POST['layer2-cat'];
                $jozve_options['store-index-page']['layer2-cat-img'] = $_POST['layer2-cat-img'];

                $jozve_options['store-index-page']['layer3-cat'] = $_POST['layer3-cat'];
                $jozve_options['store-index-page']['layer3-cat-img'] = $_POST['layer3-cat-img'];

                $jozve_options['store-index-page']['layer4-cat'] = $_POST['layer4-cat'];
                $jozve_options['store-index-page']['layer4-cat-img'] = $_POST['layer4-cat-img'];

                $jozve_options['store-index-page']['layer5-cat'] = $_POST['layer5-cat'];
                $jozve_options['store-index-page']['layer5-cat-img'] = $_POST['layer5-cat-img'];

                $jozve_options['store-index-page']['layer6-cat'] = $_POST['layer6-cat'];
                $jozve_options['store-index-page']['layer6-cat-img'] = $_POST['layer6-cat-img'];

                $jozve_options['store-index-page']['layer7-cat'] = $_POST['layer7-cat'];
                $jozve_options['store-index-page']['layer7-cat-img'] = $_POST['layer7-cat-img'];



                $jozve_options['store-index-page']['store-service-disable'] = $_POST['store-service-disable'];


                break;
            case 'store-main-slider':
                // begin store slider slide option
                // slide 1
                $jozve_options['store-main-slider']['shSlide1_img'] = $_POST['shSlide1_img'];
                $jozve_options['store-main-slider']['shSlide1_url'] = $_POST['shSlide1_url'];
                $jozve_options['store-main-slider']['shSlide1_alt'] = $_POST['shSlide1_alt'];
                // slide 2
                $jozve_options['store-main-slider']['shSlide2_img'] = $_POST['shSlide2_img'];
                $jozve_options['store-main-slider']['shSlide2_url'] = $_POST['shSlide2_url'];
                $jozve_options['store-main-slider']['shSlide2_alt'] = $_POST['shSlide2_alt'];
                // slide 3
                $jozve_options['store-main-slider']['shSlide3_img'] = $_POST['shSlide3_img'];
                $jozve_options['store-main-slider']['shSlide3_url'] = $_POST['shSlide3_url'];
                $jozve_options['store-main-slider']['shSlide3_alt'] = $_POST['shSlide3_alt'];

                // slide 4
                $jozve_options['store-main-slider']['shSlide4_img'] = $_POST['shSlide4_img'];
                $jozve_options['store-main-slider']['shSlide4_url'] = $_POST['shSlide4_url'];
                $jozve_options['store-main-slider']['shSlide4_alt'] = $_POST['shSlide4_alt'];
                // slide 5
                $jozve_options['store-main-slider']['shSlide5_img'] = $_POST['shSlide5_img'];
                $jozve_options['store-main-slider']['shSlide5_url'] = $_POST['shSlide5_url'];
                $jozve_options['store-main-slider']['shSlide5_alt'] = $_POST['shSlide5_alt'];
                // slide 6
                $jozve_options['store-main-slider']['shSlide6_img'] = $_POST['shSlide6_img'];
                $jozve_options['store-main-slider']['shSlide6_url'] = $_POST['shSlide6_url'];
                $jozve_options['store-main-slider']['shSlide6_alt'] = $_POST['shSlide6_alt'];

                // end store slider slide option
                break;

            case 'ads-setting':
                //Banner in the Content
                $jozve_options['ads_setting']['custom_banner_url'] = $_POST['custom_banner_url'];
                $jozve_options['ads_setting']['custom_banner_link'] = $_POST['custom_banner_link'];
                $jozve_options['ads_setting']['custom_banner_alt'] = $_POST['custom_banner_alt'];


                //Banner in the page Home Video
                $jozve_options['ads_setting']['custom_banner_url_video'] = $_POST['custom_banner_url_video'];
                $jozve_options['ads_setting']['custom_banner_link_video'] = $_POST['custom_banner_link_video'];
                $jozve_options['ads_setting']['custom_banner_alt_video'] = $_POST['custom_banner_alt_video'];


                //Banner in the page Home Product
                $jozve_options['ads_setting']['custom_banner_url_product'] = $_POST['custom_banner_url_product'];
                $jozve_options['ads_setting']['custom_banner_link_product'] = $_POST['custom_banner_link_product'];
                $jozve_options['ads_setting']['custom_banner_alt_product'] = $_POST['custom_banner_alt_product'];

                $jozve_options['ads_setting']['custom_banner_script'] = base64_encode(str_replace('\\', '', $_POST['custom_banner_script']));
                break;

            case 'vip-register':
                // begin gold plan option save
                $jozve_options['vip-register']['gold-plan-month'] = $_POST['gold_plan_month'];
                $jozve_options['vip-register']['gold-plan-price'] = $_POST['gold_plan_price'];
                $jozve_options['vip-register']['gold-plan-gift-credit'] = $_POST['gold-plan-gift-credit'];
                // begin gold plan option save

                // begin silver plan option save
                $jozve_options['vip-register']['silver-plan-month'] = $_POST['silver_plan_month'];
                $jozve_options['vip-register']['silver-plan-price'] = $_POST['silver_plan_price'];
                $jozve_options['vip-register']['silver-plan-gift-credit'] = $_POST['silver-plan-gift-credit'];
                // begin silver plan option save

                // begin bronze plan option save
                $jozve_options['vip-register']['bronze-plan-month'] = $_POST['bronze_plan_month'];
                $jozve_options['vip-register']['bronze-plan-price'] = $_POST['bronze_plan_price'];
                $jozve_options['vip-register']['bronze-plan-gift-credit'] = $_POST['bronze-plan-gift-credit'];
                // begin bronze plan option save

                $jozve_options['vip-register']['vip-register-term'] = $_POST['vip_register_term'];

                break;
            case 'zarinpal':
                $jozve_options['zarinpal']['merchant_code'] = $_POST['merchant_code'];
                break;
 
            case 'user-panel':
                $jozve_options['user-panel']['send-post'] = $_POST['send-post'];
                $jozve_options['user-panel']['Discount-code-description'] = $_POST['Discount-code-description'];
                $jozve_options['user-panel']['discount-code'] = $_POST['discount-code'];
                break;
            case 'theme-color':
                $jozve_options['theme-color']['index-color'] = $_POST['index-color'];
                break;
            // add in jozve 6.0.0 mohammadd *********************************************************
            case 'sms-base-panel':
                $jozve_options['sms-base-panel']['sms-system-name'] = $_POST['sms-system-name'];
                $jozve_options['sms-base-panel']['sms-link'] = $_POST['sms-link'];
                $jozve_options['sms-base-panel']['sms-line'] = $_POST['sms-line'];
                $jozve_options['sms-base-panel']['sms-user'] = $_POST['sms-user'];
                $jozve_options['sms-base-panel']['sms-password'] = $_POST['sms-password'];
                break;
            case 'sms-enable-disable':
                $jozve_options['sms-enable-disable']['all-site-sms'] = $_POST['all-site-sms'];
                $jozve_options['sms-enable-disable']['sms-comment-accept'] = isset($_POST['sms-comment-accept']) ? ($_POST['sms-comment-accept']) : '';
                $jozve_options['sms-enable-disable']['sms-mobile-confirm'] = isset($_POST['sms-mobile-confirm']) ? ($_POST['sms-mobile-confirm']) : '';
                $jozve_options['sms-enable-disable']['sms-ticket-send'] = isset($_POST['sms-ticket-send']) ? ($_POST['sms-ticket-send']) : '';
                $jozve_options['sms-enable-disable']['sms-wallet-transaction'] = isset($_POST['sms-wallet-transaction']) ? ($_POST['sms-wallet-transaction']) : '';
                $jozve_options['sms-enable-disable']['sms-site-login'] = isset($_POST['sms-site-login']) ? ($_POST['sms-site-login']) : '';
                $jozve_options['sms-enable-disable']['sms-article-send'] = isset($_POST['sms-article-send']) ? ($_POST['sms-article-send']) : '';
                break;
            case 'marketing-option':
                $jozve_options['marketing-option']['wallet-anytime-buy'] = $_POST['wallet-anytime-buy'];
                $jozve_options['marketing-option']['wallet-for_register'] = $_POST['wallet-for_register'];
                break;
            case 'information-complete':
                $jozve_options['information-complete']['wallet-info-complete'] = $_POST['wallet-info-complete'];
                $jozve_options['information-complete']['percentage-complete'] = $_POST['percentage-complete'];
                break;
            //end jozve 6.0.0 ***********************************************************************
        }
        update_option('jozve_options', $jozve_options);
        jozve_get_options($jozve_options);
    }
    include get_template_directory() . '/template-parts/admin/theme-option-panel.php';
}

  • 1400/02/08
  • ساعت 23:36

با تشکر 

 برای نمایش منو استفاده شده؟  $theme_panel_option_page از  theme-option-panel.php  در فایل


  • 1400/02/09
  • ساعت 12:05

اره ، همون رو اینکلود کردیم


logo-samandehi