• مدل های خروجی Json
  • هوک اکشن های سازنده مدل ها
  • هوک اکشن های ذخیره و نمایش
  • هوک اکشن های رویدادها
  • دانلود پلاگین های JoApp API

  • هوک اکشن ها در JoApp API به چه صورت عمل میکنند؟

    هوک اکشن ها در JoApp API به چه صورت عمل میکنند؟

    برای به کارگیری هوک اکشن ها از تابع add_action استفاده میکنیم. فرض کنید قرار است از هوک اکشن joapp_api_action_get_post که برای دریافت یک پست است استفاده کنیم. در این صورت هر زمان که اپلیکیشن درخواست دریافت اطلاعات یک پست را ارسال میکند هوک اکشن joapp_api_action_get_post صدا زده شده و با تغییر در متغیر های ساخته شده میتوانیم مقادیر تغییر داده شده را به سمت اپلیکیشن ارسال نماییم.

    لازم به ذکر است مقادیری که در هنکام اجرای یک اکشن هوک قابل ویرایش است با یک متغیر از نوع global و با نام joapp_result در دسترس است.

    برای مثال در قطعه کد زیر هنگام دریافت اطلاعات یک پست، به انتهای عنوان آن پست کاراکتر “:” اضافه میکنیم:

    <?php
    
    add_action("joapp_api_action_get_post", "function_name_hook_action_get_post");
    
    function function_name_hook_action_get_post() {
        global $joapp_result;
        $title = $joapp_result['post']->title;
        $joapp_result['post']->title = $title . ":";
    }
    
    ?>
    معرفی تمامی هوک های JoApp API در وردپرس

    معرفی تمامی هوک های JoApp API در وردپرس

    هوک های رویداد ها

    joapp_api_action_get_shipping_methods
    joapp_api_action_get_posts
    joapp_api_action_get_post
    joapp_api_action_get_about
    joapp_api_action_get_comment
    joapp_api_action_get_woo_categories
    joapp_api_action_get_user
    joapp_api_action_get_user_shipping
    joapp_api_action_posts_result
    joapp_api_action_get_woo_filters
    joapp_api_action_get_category_index
    joapp_api_action_open_pay_woo
    joapp_api_action_get_author_index
    joapp_api_action_get_page_index
    joapp_api_action_submit_comment
    joapp_api_action_register_user
    joapp_api_action_payment_template

     

    هوک های ساخت مدل ها

    joapp_api_action_author_init
    joapp_api_action_attachment_init
    joapp_api_action_category_init
    joapp_api_action_comment_init
    joapp_api_action_post_init
    joapp_api_action_tag_init
    joapp_api_action_product_init

    هوک های نمایشی و ذخیره در وردپرس

    joapp_api_action_view_about & joapp_api_action_save_about
    joapp_api_action_view_admin_menu
    joapp_api_action_view_tab_connection & joapp_api_action_save_tab_connection
    joapp_api_action_view_tab_posts & joapp_api_action_save_tab_posts
    joapp_api_action_view_tab_store & joapp_api_action_save_tab_store
    joapp_api_action_view_tab_custom_field
    joapp_api_action_view_tab_pushe
    joapp_api_action_view_edit_menus
    joapp_api_action_view_edit_tags

    هوک های نتایج ووکامرس

    joapp_api_action_get_woo_one_product
    joapp_api_action_get_woo_one_products_category
    joapp_api_action_get_woo_terms
    joapp_api_action_get_woo_products_term
    joapp_api_action_get_woo_products_search
    joapp_api_action_set_order_woo
    joapp_api_action_get_order_woo
    joapp_api_action_get_customer_orders_woo
    joapp_api_action_get_customer_downloads_woo

    هوک اکشن نمایش پست

    هوک اکشن نمایش پست

    joapp_api_action_get_post

    با استفاده از این هوک اکشن پستی (یک پست) که در اپلیکیشن قرار است بارگزاری شود با استفاده از متغیری (global) در دسترس است:

    <?php
    
    add_action("joapp_api_action_get_post", "function_name_hook_action_get_post");
    
    function function_name_hook_action_get_post() {
        global $joapp_result;
        //تغیییرات لازم را میتوانید بر روی $joapp_result اعمال نمایید
    }
    
    ?>

    خروجی و ورودی این رویداد به صورت json زیر میباشد. همچنین برای مشاهده مدل ساختاری پست ها به بخش “مدل های خروجی Json” مراجعه نمایید:

    {
    	"post_view": "",
    	"joapp_api_apk_url": "{bazaar:\/\/details?id=ir.bejo.joapp|Intent.ACTION_VIEW|com.farsitel.bazaar}",
    	"method": "GET",
    	"v": 400,
    	"joapp_api_version_code": 1,
    	"status": "ok",
    	"post": {
    		/** POST MODEL **/
    	},
    	"previous_url": "URL previous POST",
    	"next_url": "URL next POST"
    }

     

    هوک اکشن رویداد دسته بندی نوشته ها

    هوک اکشن رویداد دسته بندی نوشته ها

    joapp_api_action_get_category_index

    زمانی این هوک اکشن صدا زده میشود که اپلیکیشن برای اولین بار اجرا شده و از سرور درخواست دریافت لیست دسته بندی های بخش محتوایی را نماید. طبیعتا به همراه دریافت اطلاعات لیست دسته بندی ها لیست منو های برنامه در بخش محتوایی نیز دریافت میشود.

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

    • count : تعداد دسته بندی ها.
    • using_woocommerce : بخش فروشگاه در اپلیکیشن استفاده شده است یا خیر.
    • menus : مدل منو های مروبوط به منوی کشویی سمت راست که در تنظیمات JoApp API ست کرده اید.
    • categories : آرایه ای از دسته بندی های تنظیم شده برای بخش محتوایی که هریک خانه های آرایه یک مدل دسته بندی است.

    مدل json از joapp_result در زیر نمایش داده شده است:

    {
    	"count": 3,
    	"using_woocommerce": true,
    	"menus": [{
    		"title": "menu1",
    		"event": "event_menu_1",
    		"icon": "ic_group"
    	},
    	{
    		"title": "menu2",
    		"event": "event_menu_2",
    		"icon": "ic_local_dining"
    	},
    	{
    		"title": "menu3",
    		"event": "event_menu_3",
    		"icon": "ic_info"
    	},...],
    	"categories": [{
    		"id": 27,
    		"slug": "slug_cat_1",
    		"title": "Category 1",
    		"description": "",
    		"parent": 0,
    		"post_count": 2,
    		"image": "",
    		"sliders": [],
    		"post_view": "one_news_large"
    	},
    	{
    		"id": 1,
    		"slug": "slug_cat_2",
    		"title": "Category 2",
    		"description": "",
    		"parent": 0,
    		"post_count": 13,
    		"image": "",
    		"sliders": [{
    			"url": "http:\/\/domain.com\/slide1.png",
    			"intent": "tel:09392376007"
    		},
    		{
    			"url": "http:\/\/domain.com\/slide2.png",
    			"intent": "http://domain.com"
    		},...],
    		"post_view": "one_news_large_2",
    		"is_menu": true
    	},
    	{
    		"id": 30,
    		"slug": "slug_cat_3",
    		"title": "Category 3",
    		"description": "",
    		"parent": 0,
    		"post_count": 2,
    		"image": "",
    		"sliders": [],
    		"post_view": "one_news_large",
    		"is_menu": true
    	},...],
    	
    }

     

    هوک اکشن رویداد دریافت پست ها

    هوک اکشن رویداد دریافت پست ها

    joapp_api_action_posts_result

    این هوک اکشن زمانی اجرا میشود که اپلیکیشن درخواست مجوعه ای (آرایه ای) از پست ها (نوشته ها) را در اپلیکیشن داشته باشید. این آرایه در متغیر گلوبال joapp_result و تحت فیلد posts در دسترس است. joapp_result درای فیلد های زیر است:

    • count : تعداد پست های این رویداد
    • count_total : کل پست های قابل دریافت از سرور
    • pages : صفحه جاری پست های درخواستی
    • posts : آرایه ای از مدل پست که تمامی پست های صفحه جاری را در خود دارد.
    هوک اکشن پست ها (دسته ای از پست ها)

    هوک اکشن پست ها (دسته ای از پست ها)

    joapp_api_action_get_posts

    با استفاده از این هوک اکشن آرایه ای از پست ها در متغیری از نوع global با نام joapp_result در دسترس است. دقت نمایید که پست ها در داخل “posts” با ساختار مدل پست و به صورت آرایه در دسترس میباشد.

    مثالی از روش استفاده از این هوک اکشن: به عنوان تمامی پست ها کاراکتر “:” اضافه میکند.

    <?php
    
    add_action("joapp_api_action_get_posts", "function_name_hook_action_get_posts");
    
    function function_name_hook_action_get_posts() {
        global $joapp_result;
        
        $posts = $joapp_result['posts'];
        foreach ($posts as $post){
            $post->title .= ":";
        }
    }
    
    ?>

    ورودی و خروجی رویداد این هوک به صورت json زیر میباشد:

    {
        "count": 10,
        "count_total": 59,
        "pages": 6,
        "posts": [{ /** POST MODEL **/ },{ /** POST MODEL **/ },{ /** POST MODEL **/ },...]
    }

     

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

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

    joapp_api_action_get_author_index

    هوک اکشن فوق زمانی اجرا میشود که اپلیکیشن لیست تمامی نویسندگان مطالب سایت را بخواهد. این لیست در متغیر گلوبال joapp_result در دسترس بوده و آرایه ای از ساختار مدل author (کاربر ، نویسنده) میباشد. این آرایه در فیلد authors قابل مدیریت است.

    مثال : فرض کنید بخواهید زمانی که اپلیکیشن ایست نویسندگان سایت را دریافت میکند جلوی نام نویسنده تعداد پست نوشته شده را نیز قرار دهد.

    <?php
    
    add_action("joapp_api_action_get_author_index", "function_name_hook_action_get_author_index");
    
    function function_name_hook_action_get_author_index() {
        global $joapp_result;
    
        $authors = $joapp_result['authors'];
        foreach ($authors as $author) {
            $user_post_count = count_user_posts( $author->id , 'post' );
            $author->first_name .= ' ('.$user_post_count.')'; 
        }
        
    }
    
    ?>

     

    هوک اکشن رویداد درباره ما

    هوک اکشن رویداد درباره ما

    joapp_api_action_get_about

    با این هوک اکشن میتوانید ساختار Json بخش درباره ما را کنترل نموده و موارد دلخواه خود را با استفاده از متغیر گلوبال joapp_result کنترل کنید:

    مثال : در مثال زیر در هر زمان که بخش درباره ما از سمت اپلیکیشن درخواست میشود تاریخ جاری نیز به انتهای بخش توضیحات (content) افزوده میشود

    <?php
    
    add_action("joapp_api_action_get_about", "function_name_hook_action_get_about");
    
    function function_name_hook_action_get_about() {
        global $joapp_result;
    
        $post = $joapp_result['post'];
        $post->content .= "<hr/><center>". date("Y-m-d")."</center>";
    }
    
    ?>

     

    هوک اکشن های ذخیره و نمایش چیست؟

    هوک اکشن های ذخیره و نمایش چیست؟

    این نوع از هوک اکشن ها برای مدیریت پیشخوان JoApp API در وردپرس کاربرد دارد. فرض میکنیم قرار است پلاگین هایی برای JoApp API تولید کنیم که بتوانید در بخش تنظیمات JoApp API منویی را اضافه کنیم. یا بخواهیم در بخش ویرایش درباره ما گزینه هایی را ایجاد کنیم یا حذف کنیم. همچنین میخواهیم پس از کلیک بر روی کلید های ذخیره مقادیری که برای ذخیره سازی در تنظیمات JoApp API ارسال میشود را مدیریت و یا تغییر و ذخیره سازی کنیم پس از طریق هوک های ذخیره و نمایش میتوانیم موارد ذکر شده را مدیریت کنیم.

    نکته : برخی از هوک اکشن های نمایشی دارای هوک ذخیره نیز میباشد تا همزمان عملیات نمایش و ذخیره مدیریت شود. برخی دیگیر از هوک های نمایشی هستند که نیازی به ذخیره سازی اطلاعات نداشته پس دارای هوک ذخیره نیست.

    هوک اکشن های ذخیره و نمایش بخش درباره ما

    هوک اکشن های ذخیره و نمایش بخش درباره ما

    • نمایش:

    joapp_api_action_view_about

    • ویرایش :

    joapp_api_action_save_about

    دو هوک اکشن فوق برای نمایش و ذخیره بخش درباره ما در JoApp API کاربرد دارد.

    مثال : میخواهیم در بخش درباره ما یک Input برای قرار دادن آدرس تصویر نماد اعتماد سایت ایجاد کنیم. و مقدار آن را ذخیره کنیم. سپس هنگامی که در اپلیکیشن بخش درباره ما صدا زده شد نماد اعتماد در انتهای متن نمایش داده شود.

    <?php
    
    add_action("joapp_api_action_view_about", "joapp_api_action_view_about_func");
    add_action("joapp_api_action_save_about", "joapp_api_action_save_about_func");
    add_action("joapp_api_action_get_about", "joapp_api_action_get_about_func");
    
    function joapp_api_action_view_about_func($reqest) {
        $nemad_url = get_option("joapp_api_about_nemad", "");
        ?>
        <hr/>
        <label>لینک تصویر نماد اعتماد :</label>
        <input type="text" value="<?php echo $nemad_url ?>" name="joapp_api_about_nemad" />
        <hr/>
        <?php
    }
    
    function joapp_api_action_save_about_func($request) {
        if (isset($request['joapp_api_about_nemad'])) {
            update_option("joapp_api_about_nemad", $request['joapp_api_about_nemad']);
        }
    }
    
    function joapp_api_action_get_about_func() {
        global $joapp_result;
        $nemad_url = get_option("joapp_api_about_nemad", "");
        if ($nemad_url !== "") {
            $about = $joapp_result['post'];
            $about->content .= "<hr/><br/><img src='$nemad_url'/>";
        }
    }
    
    ?>