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

  • هوک اکشن رویداد دریافت روش های حمل و نقل کالا

    هوک اکشن رویداد دریافت روش های حمل و نقل کالا

    joapp_api_action_get_shipping_methods

    این هوک اکشن زمانی اجرا میشود که بخواهیم اطلاعات روش های حمل و نقل و روش پرداخت کالا را در بخش فروشگاهی اپلیکیشن دریافت کنیم. اطلاعات روش های حمل و نقل در متغیر گلوبال joapp_result قرار دارد.

    فیلد های موجود در joapp_result عبارتند از:

    • shipping : روش های حمل و نقل کاالا. بر اساس مدل json حمل و نقل.
    • payment_place : مدل پرداخت در محل برای این روش های حمل و نقل.

    ساختار json مدل joapp_result در زیر آمده است:

    {
    	"shipping": [{
        		"title": "حمل با پیک موتوری",
        		"tax_status": "taxable",
        		"cost": "5000",
        		"class_costs": "",
        		"class_cost_43": "",
        		"no_class_cost": "",
        		"type": "class",
        		"method_id": "flat_rate:13"
        	},
        	{
        		"title": "حمل و نقل رایگان",
        		"requires": "min_amount",
        		"min_amount": "1000000",
        		"method_id": "free_shipping:15"
        	},
        	{
        		"title": "دریافت کالا توسط مشتری در فروشگاه",
        		"tax_status": "taxable",
        		"cost": "",
        		"method_id": "local_pickup:16"
        	},
        	{
        		"title": "پست ویژه تیپاکس",
        		"tax_status": "none",
        		"cost": "10000",
        		"class_costs": "",
        		"class_cost_43": "",
        		"no_class_cost": "",
        		"type": "class",
        		"method_id": "flat_rate:17"
        	},
        	{
        		"title": "پست پیشتاز",
        		"tax_status": "taxable",
        		"cost": "8900",
        		"class_costs": "",
        		"class_cost_43": "",
        		"no_class_cost": "",
        		"type": "class",
        		"method_id": "flat_rate:18"
    	}],
    	"payment_place": {
    		"enabled": true, /** آیا پرداخت در محل فعال است؟ **/
    		"enable_for_method": [ /** پرداخت در محل برای کدامیک از روش های حمل و نقل باشد؟ **/
    		    "flat_rate",
    		    "free_shipping"
    		]
    	}
    }
    مدل نویسنده یا کاربر (Author)

    مدل نویسنده یا کاربر (Author)

    نویسنده مطالب و یا کاربران در JoApp API با مدل json زیر در اپلیکیشن بارگذاری میشود:

    {
    	"id": 0,
    	"slug": "STRING SLUG",
    	"name": "STRING NAME",
    	"first_name": "STRING FIRST NAME",
    	"last_name": "STRING LAST NAME",
    	"nickname": "STRING NICKNAME",
    	"url": "STRING URL PAGE",
    	"description": "STRING DESCRIPTION",
    	"avatar": {
    		/** AVATAR MODEL **/
    	}
    }

     

    مدل آواتار (Avatar) یا تصویر پروفایل کاربری

    مدل آواتار (Avatar) یا تصویر پروفایل کاربری

    مدل تصویر پروفایل کاربران بر اساس مدل Json زیر در اپلیکیشن بارگذاری میشود:

    {
    	"thumbnail": {
    		"url": "https://s.gravatar.com/avatar/00d60277d09f7a61d967d693abbecc72?s=80&r=x",
    		"height": 75,
    		"width": 75
    	},
    	"full": {
    		"url": "https://s.gravatar.com/avatar/00d60277d09f7a61d967d693abbecc72?s=1024&r=x",
    		"height": 1024,
    		"width": 1024
    	}
    }

     

    مدل یک دیدگاه (Comment)

    مدل یک دیدگاه (Comment)

    دیدگاه ها بر اساس مدل Json زیر در JoApp API تولید و به اپلیکیشن ارسال میگردد. این ساختار ممکن است آرایه ای از دیدگاهها بوده و یا تنها یک دیدگاه باشد:

    نکته : rating در دیدگاهها شماره ستاره های داده شده توسط کاربر است.

    {
    	"id": 55,
    	"name": "AUTHOR NICKENAME",
    	"url": "",
    	"date": "2018-03-23 10:30:22",
    	"content": "<p>CONTENT COMMENT<\/p>",
    	"parent": 0,
    	"author": {  /** AUTHOR MODEL **/ },
    	"rating": "-1" //if rating = -1 then not exist rating. 0 < rating <= 5
    }

     

    مدل محصول (Product)

    مدل محصول (Product)

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

    نکته : در حالتی که is_small برابر با true باشد تنها موارد ضروری فیلد ها، برای افزایش سرعت تبادل اطلاعات و در ارسال لیستی از محصولات به اپلیکیشن ارسال میشود.

    {
    	"id": 100,
    	"title": "عنوان  محصول",
    	"type": "نوع محصول",
    	"permalink": "لینک",
    	"featured": false,
    	"description": "توضیحات کامل",
    	"short_description": "نوشته کوتاه",
    	"price": "1 قیمت",
    	"regular_price": "قیمت 2",
    	"in_stock": true,
    	"weight" : "0k/g" ,
    	"dimensions": {
    		"length": "100",
            "width": "100",
    		"height": "100",
    		"unit": "cm"
    	},
    	"images": [{
        		"src":"URL IMAGE",
        		"name": "thumbnile"
        	},
        	{
        		"src": "URL IMAGE",
        		"name": "thumbnile"
        	},...
    	],
    	"attributes": [{
        		"name": "ATTRIBUTE NAME",
        		"slug": "ATTRIBUTE NAME",
        		"position": 0,
        		"visible": true,
        		"variation": true,
        		"options": ["options 1","options 2",...]
    	    },...
    	],
    	"average_rating": "0.0": ,
    	"rating_count": 23,
    	"product_meta": {
    		"meta_key1": "meta_val1",
    		"meta_key2": "meta_val2",
    		...
    	},
    	"managing_stock": false,
    	"stock_quantity": 0,
    	"is_small": false
    }

     

    هوک اکشن رویداد ارسال دیدگاه

    هوک اکشن رویداد ارسال دیدگاه

    joapp_api_action_submit_comment

    این هوک اکشن زمانی رخ میدهد که کاربر بخواهد یک دیدگاه ارسال نماید. برخلاف هوک اکشن های دیگر که متغیر خروجی برای ویرایش در دسترس بود در این هوک اکشن ، متغیر ورودی برای انجام عملیات کنترلی در دسترس میباشد. اطلاعات ورودی در متغیر گلوبال joapp_data قرار گرفته است.

    فیلد های در دسترس joapp_data شامل موارد زیر می باشد:

     

    • comment_post_ID : شناسه پستی که دیدگاه برای آن ثبت خواهد شد.
    • comment_author : نام کاربری نویسنده دیدگاه.
    • user_id : شماره نویسنده دیدگاه.
    • comment_author_email : ایمیل نویسنده دیدگاه.
    • comment_author_url : آدرس سایت نویسنده دیدگاه (پیشفرض خالی است).
    • comment_content : متن دیدگاه.
    • comment_author_IP : آی پی نویسنده دیدگاه.
    • comment_agent : برچسب agent مرورگر نویسنده دیدگاه که به صورت پیشفرض خالی است.
    • comment_date : تاریخ و زمان ارسال دیدگاه.
    • comment_date_gmt : تاریخ و زمان ارسال دیدگاه براساس ساعت جهانی.
    • comment_approved : در صورت true بودن این مقدار، پس از ثبت دیدگاه به صورت خودکار دیدگاه تایید شده است و نیازی به بررسی مدیر سایت نیست.

     

    مثال : فرض کنید بخواهیم زمانی که کاربر دیدگاهی را ارسال میکند قبل از ذخیره شدن دیدگاه مقدار “Sent from Application” در انتهای متن دیدگاه قرار گیرد.

    <?php
    
    add_action("joapp_api_action_submit_comment", "function_name_hook_action_submit_comment");
    
    function function_name_hook_action_submit_comment() {
        global $joapp_data;
        $joapp_data['comment_content'] .= "\n\n Sent from Application";
        
    }
    
    ?>

     

    هوک اکشن رویداد دریافت فیلترهای محصولات

    هوک اکشن رویداد دریافت فیلترهای محصولات

    joapp_api_action_get_woo_filters

    از طریق این هوک اکشن امکان دریافت فیلترهای ثبت شده برای کاوش در محصولات فراهم میشود. فیلتر ها در متغیر گلوبال joapp_result در دسترس میباشد. خروجی فیلتر ها در joapp_result به صورت ساختار مدل json زیر در دسترس است:

    {
        "filters": [
            {
                "name": "filter name 1",
                "slug": "pa_slug_filter1",
                "id": 1,
                "count": 3
            },
            {
                "name": "filter name 2",
                "slug": "pa_slug_filter2",
                "id": 5,
                "count": 1
            },
            {
                "name": "filter name 2",
                "slug": "pa_slug_filter2",
                "id": 6,
                "count": 2
            },
            {
                "name": "filter name 3",
                "slug": "pa_slug_filter3",
                "id": 4,
                "count": 1
            }
            ,...
        ]
    }
    هوک اکشن دریافت آدرس پستی کاربر

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

    joapp_api_action_get_user_shipping

    این هوک اکشن در زمان دریافت فیلد های پستی کاربر در فروشگاه درخ میدهد. زمانی که کاربری برای نهایی کردن سبد خرید در اپلیکیشن اقدام میکند این هوک اکشن صدا زده شده خروجی آن در متغیر گلوبال joapp_result در دسترس است.

    مثال : در مثال زیر به صورت پیش آدرس کاربری که شهری بای آن ثبت نشده است به تهران تغییر می یابد.

    <?php
    
    add_action("joapp_api_action_get_user_shipping", "function_name_hook_action_get_user_shipping");
    
    function function_name_hook_action_get_user_shipping() {
        global $joapp_result;
    
        if($joapp_result['shipping']['state'] == ""){
            $joapp_result['shipping']['state'] = "THR";
        }
    }
    
    ?>

    فیلد های دیگر joapp_result در مدل خروجی آن به صورت زیر میباشد:

    • shipping : آدرس پستی کاربر
    • shipping_form : در صورت حذف هر یک از مقادیر این آرایه ورودی مروبوط به آن در اپلیکیشن مخفی میگردد. مثلا اگر شما FIRST_NAME را از shipping_form حذف کنید در اپلیکیشن برای دریافت آدرس تکست باکس مروبط به نام در اپلیکیشن مخفی میگردد.
    • check_orders : این فیلد در هنگام دریافت مشخصات کاربر بررسی میکند آیا خطایی برای محصولات درخواست شده وجود دارد یا خیر در صورتی که این فیلد خالی باشد درواقع خطایی در سفارش سبد خرید نیست.
    • locations : در صورتی که از موقعیت های استان و شهر پیشفرض وردپرس استفاده نکنید این فیلد از بخش شهر های ثبت شده در JOAPP API پر میشود.
    {
    	"shipping": {
    		"first_name": "Name",
    		"last_name": "Family",
    		"company": "Company Name",
    		"address_1": "Full Address 1",
    		"address_2": "Full Address 2",
    		"city": "Shemiran",
    		"state": "THR",
    		"postcode": "8888866554",
    		"country": "IR",
    		"email": "email_address@gmail.com",
    		"phone": "09392376007"
    	},
    	"shipping_form": [
    		"FIRST_NAME",
    		"LAST_NAME",
    		"COMPANY",
    		"ADDRESS_1",
    		"ADDRESS_2",
    		"CITY",
    		"STATE",
    		"POSTCODE",
    		"EMAIL",
    		"PHONE",
    		"NOTE"
    	],
    	"check_orders": [{
    	    "order_id" : 10,
            "message" : "کالای 10 به این تعداد در انبار نیست"
        },...],
    	"locations": {
    		"update_flag": "1522504496"
    	}
    }
    هوک اکشن رویداد دانلود های یک کاربر فروشگاه

    هوک اکشن رویداد دانلود های یک کاربر فروشگاه

    joapp_api_action_get_customer_downloads_woo

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

    نمونه ای از json یکی از این درخواست ها در زیر مشاهده میشود:

    {
    	"downloads": [{
    		"download_url": "http://domain.com/download/file1.zip",
    		"download_name": "file_name1",
    		"downloads_remaining": 5,
    		"base_file_name": "file1.zip"
    	},
    	{
    		"download_url": "http://domain.com/download/file2.zip",
    		"download_name": "file_name2",
    		"downloads_remaining": 1,
    		"base_file_name": "file2.zip"
    	},...]
    }

     

    دانلود پلاگین  JoApp API Portfolio

    دانلود پلاگین JoApp API Portfolio

    در صورتی که از پلاگین Portfolio برای ایجاد گالری تصاویر در سایتتان استفاده کرده اید. این افزونه کمکی در JoApp API کمک خواهد کرد که پست های Portfolio در اپلیکیشن در دسترس باشد. مانند سایت wallery.ir

     

    تصاویر نمونه از محیط portfolio در اپلیکیشن:

     


    ضمیمه ها

    توسعه دهنده
    SDTCo
    قیمت
    10,000 تومان