<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>قلاب ها &#8211; مستندات قالب آموزشیار</title>
	<atom:link href="https://wpdone.ir/docs/help-category/hooks/feed/" rel="self" type="application/rss+xml" />
	<link>https://wpdone.ir/docs</link>
	<description>قالب آموزشی و فروش دوره آنلاین</description>
	<lastBuildDate>Sat, 09 Sep 2023 18:21:53 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>دیدگاه ها</title>
		<link>https://wpdone.ir/docs/help/comments-hooks/</link>
		
		<dc:creator><![CDATA[wpdone]]></dc:creator>
		<pubDate>Fri, 08 Sep 2023 12:38:23 +0000</pubDate>
				<guid isPermaLink="false">https://wpdone.ir/docs/?post_type=help&#038;p=815</guid>

					<description><![CDATA[مدیریت برچسب ها و دیگر موارد مرتبط با دیدگاه ها]]></description>
										<content:encoded><![CDATA[
<p>میتوانید برچسب های اختصاصی برای دیدگاه ها ثبت کنید.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_comment_label</h2>



<p>ساخت برچسب سفارشی برای گروهی از دیدگاه ها:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_comment_label', function ( $options, $user_id, $post_id ) {
    if( $user_id == 1 ) {
        $options = array(
            'tick' =&gt; true,
            'label' =&gt; 'تیم پشتیبانی',
            'bg_color' =&gt; '#000000',
            'color' =&gt; '#ffffff',
            'border_radius' =&gt; '25px'
        );
    }
    return $options;
}, 10, 3 );
</pre></div>


<p>در کد بالا برچسب <strong>تیم پشتیبانی</strong> برای کاربر با شناسه <strong>1</strong> افزوده خواهد شد. علاوه بر برچسب، شما میتوانید ویژگی‌های دیگری هم تنظیم کنید به عنوان رنگ پس زمینه یا نمایش تیک آبی و ..</p>



<p><strong>tick</strong> ( مقدار true یا false ) : اگر false باشد تیک آبی نمایش داده نمیشود</p>



<p><strong>label</strong> : متن برچسب</p>



<p><strong>bg_color</strong> : رنگ پس زمینه</p>



<p><strong>color</strong> : رنگ متن</p>



<p><strong>border_radius</strong> : میزان گردی گوشه های کادر برچسب</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ویرایش پروفایل</title>
		<link>https://wpdone.ir/docs/help/hooks-edit-profile/</link>
		
		<dc:creator><![CDATA[wpdone]]></dc:creator>
		<pubDate>Sat, 25 Jun 2022 12:18:24 +0000</pubDate>
				<guid isPermaLink="false">https://wpdone.ir/docs/?post_type=help&#038;p=758</guid>

					<description><![CDATA[شما میتوانید با استفاده از قلاب های فرم ویرایش پروفایل، موارد جدیدتری به آن اضافه کنید.]]></description>
										<content:encoded><![CDATA[
<p>شما میتوانید با استفاده از قلاب های فرم ویرایش پروفایل، موارد جدیدتری به آن اضافه کنید.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_woocommerce_form_edit_account_custom</h2>



<p>با استفاده از این قلاب میتوانید فرم ویرایش پروفایل قالب را به پیشفرض ووکامرس بازگردانید:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_woocommerce_form_edit_account_custom', '__return_false', 1001 );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_phone_notice</h2>



<p>پیغام عدم ثبت شماره موبایل را حذف میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_account_phone_notice', '__return_false' );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_email_notice</h2>



<p>پیغام عدم ثبت آدرس ایمیل را حذف میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_account_email_notice', '__return_false' );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_form_edit_account_field</h2>



<p>افزودن فیلد دلخواه به فرم ویرایش پروفایل کاربران:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_form_edit_account_field', function () {
    $user = wp_get_current_user();
    if( ! empty( $user-&gt;ID ) ) {
?&gt;
    &lt;p&gt;
        &lt;label for=&quot;field_1&quot;&gt;فیلد آزمایشی&lt;/label&gt;
        &lt;input type=&quot;text&quot; name=&quot;field_1&quot; id=&quot;field_1&quot; value=&quot;&lt;?php echo $user-&gt;field_1; ?&gt;&quot;&gt;
    &lt;/p&gt;
    &lt;p&gt;
        &lt;label for=&quot;field_2&quot;&gt;فیلد آزمایشی ۲&lt;/label&gt;
        &lt;input type=&quot;text&quot; name=&quot;field_2&quot; id=&quot;field_2&quot; value=&quot;&lt;?php echo $user-&gt;field_2; ?&gt;&quot;&gt;
    &lt;/p&gt;
&lt;?php
    }
} );
</pre></div>


<p>نکته: نام های <strong>field_1</strong> و <strong>field_2</strong> به عنوان مثال درج شده‌اند.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_form_edit_account_save</h2>



<p>دریافت ورودی کاربر و ذخیره آن:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_form_edit_account_save', function ( $user_id ) {
    if( ! empty( $_POST&#91; 'field_1' ] ) ) {
        update_user_meta( $user_id, 'field_1', $_POST&#91; 'field_1' ] );
    }
    
    if( ! empty( $_POST&#91; 'field_2' ] ) ) {
        update_user_meta( $user_id, 'field_2', $_POST&#91; 'field_2' ] );
    }
} );
</pre></div>


<p><strong>نکته:</strong> در این کد برای مثال داده ها در جدول <strong>usermeta</strong> ذخیره میشوند.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>تیکت پشتیبانی</title>
		<link>https://wpdone.ir/docs/help/tickets-hooks/</link>
		
		<dc:creator><![CDATA[wpdone]]></dc:creator>
		<pubDate>Sun, 19 Jun 2022 07:51:32 +0000</pubDate>
				<guid isPermaLink="false">https://wpdone.ir/docs/?post_type=help&#038;p=745</guid>

					<description><![CDATA[این قلاب ها به شما کمک میکنند تا تغییرات دلخواه خود را روی سیستم پشتیبانی سایت خود اعمال کنید.]]></description>
										<content:encoded><![CDATA[
<p>قلاب های زیر به شما کمک میکنند تا تغییرات دلخواه خود را روی سیستم پشتیبانی سایت خود اعمال کنید.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">افزودن وضعیت جدید</h2>



<p>بصورت پیشفرض تیکت‌ها دارای ۳ وضعیت <strong>باز</strong>، <strong>پاسخ داده شده</strong> و <strong>بسته شده</strong> هستند. این وضعیت ها با شناسه های رزرو شده <strong>open</strong>, <strong>answered</strong> و <strong>closed</strong> ساخته شده‌اند. درصورتی که قصد دارید وضعیت جدیدی به سیستم پشتیبانی اضافه کنید لازم است یک شناسه منحصربفرد برای وضعیت های جدید خود در نظر بگیرید.</p>



<p><strong>روند کلی کار:</strong></p>



<p><strong>۱.</strong> افزودن وضعیت جدید <strong>۲.</strong> تعریف عنوان <strong>۳.</strong> اعمال رنگ دلخواه</p>



<h2 class="wp-block-heading">۱. قلاب: amzshyar_tickets_status</h2>



<p>افزودن وضعیت جدید به سیستم پشتیبانی:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_tickets_status', function ( $status_list ) {
    $status_list&#91;] = 'new-status';
    return $status_list;
} );
</pre></div>


<p><strong>نکته:</strong> ما برای وضعیت جدید از شناسه <strong>new-status</strong> استفاده کردیم.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">۲. قلاب: amzshyar_tickets_status_title</h2>



<p>تعریف عنوان نمایشی برای وضعیت جدید‌ ( درصورتی که تعریف نکنید <strong>new-status</strong> نمایش داده میشود ) :</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_tickets_status_title', function ( $data ) {
    if( 'new-status' == $data ) return 'وضعیت جدید';
    return $data;
} );
</pre></div>


<p><strong>نکته:</strong> متغیر <strong>data$</strong> شناسه وضعیت را برمیگرداند.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">۳. اعمال رنگ دلخواه روی وضعیت جدید</h2>



<p>برای اعمال رنگ دلخواه باید استایل مورد نظر را به <strong>wp_head</strong> اضافه کنیم.</p>



<p>تابع <strong>()amzshyar_tickets_status_style_color</strong> استایل مورد نیاز را برای شما تولید میکند. در <strong>ورودی اول</strong> <strong>شناسه وضعیت جدید</strong> و در <strong>ورودی دوم</strong> تابع <strong>کد رنگ</strong> مورد نظر خود را قرار دهید. به عنوان مثال:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'wp_head', function () {
    amzshyar_tickets_status_style_color( 'new-status', '#f48e36' );
} );
</pre></div>


<p>درصورتی که قصد دارید وضعیت های بیشتری اضافه کنید لازم است موارد ۱ تا ۳ را مجدد برای وضعیت جدید هم طی کنید.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_tickets_status_in_filters</h2>



<p>این قلاب به شما کمک میکند تا وضعیت هایی که تمایل ندارید در قسمت فیلتر تیکت‌ها نمایش داده نشود. کافیست با استفاده از شرط نمونه وضعیت دلخواه خود را پیدا کنید و در نهایت false را return کنید.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_tickets_status_in_filters', function ( $data, $status ) {
    if( 'new-status' == $status ) return false;
    return $data;
}, 10, 2 );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_tickets_files_dir</h2>



<p>تغییر مسیر آپلود فایل های پیوست:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_tickets_files_dir', function () {
    return &#91;
        'path' =&gt; WP_CONTENT_DIR . '/uploads/tickets',
        'url'  =&gt; content_url( 'uploads/tickets/' )
    ];
} );
</pre></div>


<p><strong>ورودی path:</strong> مسیر واقعی آپلود فایل برای سیستم عامل</p>



<p><strong>ورودی url:</strong> آدرس عمومی فایل برای دانلود فایل توسط کاربر</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_tickets_files_max_size_mb</h2>



<p>تغییر حداکثر حجم مجاز برای آپلود فایل پیوست به مگابایت:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_tickets_files_max_size_mb', function () {
    return 10;
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_tickets_files_formats</h2>



<p>تغییر فرمت های مجاز برای آپلود فایل پیوست:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_tickets_files_formats', function () {
    return &#91; 'jpg', 'jpeg', 'png', 'zip' ];
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_tickets_url</h2>



<p>درصورتی که با استفاده از شورتکد در برگه دیگری تیکت‌های سایت خود را نمایش میدهید میتوانید لینک کامل دسترسی به برگه تیکت‌ها را بصورت زیر تغییر دهید :</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_tickets_url', function () {
    return 'https://your-site/tickets';
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_tickets_limit</h2>



<p>تغییر تعداد نمایش نتایج تیکت‌ها: بصورت پیشفرض ۲۰ مورد برای کاربر نمایش داده میشود.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_tickets_limit', function () {
    return 20;
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_dashbaord_last_tickets</h2>



<p>بصورت پیشفرض آخرین تیکت های باز در پیشخوان پنل کاربری نمایش داده میشود. درصورت عدم تمایل به نمایش این مورد میتوانید با استفاده از این قلاب این قابلیت را غیرفعال کنید:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_dashbaord_last_tickets', '__return_false' );
</pre></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>سامانه پیامکی</title>
		<link>https://wpdone.ir/docs/help/sms-panels/</link>
		
		<dc:creator><![CDATA[wpdone]]></dc:creator>
		<pubDate>Sun, 05 Jun 2022 11:14:23 +0000</pubDate>
				<guid isPermaLink="false">https://wpdone.ir/docs/?post_type=help&#038;p=726</guid>

					<description><![CDATA[به راحتی با مستندات و قلاب های ارائه شده سامانه پیامکی دلخواه خود را به قالب اضافه کنید.]]></description>
										<content:encoded><![CDATA[
<p>به راحتی با مستندات و قلاب های ارائه شده سامانه پیامکی دلخواه خود را به قالب اضافه کنید.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><strong>amzshyar_sms_panels</strong></h2>



<p>افزودن اطلاعات و فیلدهای مورد نیاز سامانه پیامکی جدید به کمک این قلاب ممکن شده است :</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
// Add new panel to settings theme
add_filter( 'amzshyar_sms_panels', function ( $panels ) {
    // Add panel
    $panels&#91; 'YOUR_PANEL_NAME' ] = &#91;
        'title' =&gt; 'پنل پیامک آزمایشی',

        // Add fields in settings theme:
        'fields' =&gt; &#91;
            &#91;
                'name' =&gt; 'number',
                'label' =&gt; 'شماره خط ارسال کننده',

                // optional property:
                'placeholder' =&gt; '',
                'type' =&gt; 'text',
                'default' =&gt; '',
                'note' =&gt; ''
            ],
            &#91;
                'name' =&gt; 'username',
                'label' =&gt; 'نام کاربری'
            ],
            &#91;
                'name' =&gt; 'password',
                'label' =&gt; 'رمز عبور'
            ],
            'وبسرویس خدماتی',
            &#91;
                'name' =&gt; 'template_id_otp',
                'label' =&gt; 'شناسه قالب - ارسال کد فعالسازی',
                'desc' =&gt; 'درصورتی که خالی باشد بصورت عادی ارسال میشود',
                'note' =&gt; 'متغیر &lt;code&gt;&#91;code]&lt;/code&gt; - کد فعالسازی'
            ],
            'hr',
            &#91;
                'name' =&gt; 'template_id_ticket_new',
                'label' =&gt; 'شناسه قالب - اطلاع رسانی تیکت جدید',
                'desc' =&gt; 'درصورتی که خالی باشد بصورت عادی ارسال میشود',
                'note' =&gt; 'متغیر &lt;code&gt;&#91;name]&lt;/code&gt; - نام اپراتور'
            ],
            'hr',
            &#91;
                'name' =&gt; 'template_id_ticket_reply_new',
                'label' =&gt; 'شناسه قالب - اطلاع رسانی پاسخ جدید تیکت',
                'desc' =&gt; 'درصورتی که خالی باشد بصورت عادی ارسال میشود',
                'note' =&gt; 'متغیر &lt;code&gt;&#91;name]&lt;/code&gt; - نام اپراتور'
            ]
        ]
    ];

    return $panels;
} );
</pre></div>


<p><strong>توضیحات:</strong></p>



<ul class="wp-block-list"><li>متغیر <strong>panels$</strong> حاوی اطلاعات تمام پنل های فعال بصورت آرایه است. پس توجه داشته باشید که فقط باید یک آیتم جدید را به این آرایه اضافه کنید و در نهایت این متغیر را <strong>return</strong> کنید.</li><li>یک شناسه یکتا برای پنل پیامکی خود در نظر بگیرید و در ادامه برای شناسایی باید از آن استفاده کنید. برای نمونه در این کد از عبارت <strong>YOUR_PANEL_NAME</strong> استفاده شده است.</li><li>درون <strong>fields</strong> میتوانید اطلاعاتی که نیاز دارید از کاربر دریافت کنید را تعریف کنید. با استفاده از این اطلاعات فرم جدیدی در تنظیمات قالب ساخته میشود که کاربر میتوانید آن را وارد کنید.</li><li>تمام فیلدهایی که تعریف میکنید باید دارای یک <strong>name</strong> باشند. شما با استفاده از این نام‌ها میتوانید از طریق متغیر <strong>config$</strong> در ادامه اطلاعات ورودی کاربر را دریافت کنید.</li></ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_sms_send</h2>



<p>این قلاب به شما کمک میکند در زمان‌هایی که نیاز است پیامک ارسال شود متوجه آن شوید و درصورتی که پنل فعال برای ارسال پیامک پنل شما باشد، عملیات ارسال پیامک را انجام دهید.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
// Add action on send new sms
add_action( 'amzshyar_sms_send', function ( $panel_id, $config, $type, $to, $sms_text, $data )
{

    // check panel id
    if( 'YOUR_PANEL_NAME' == $panel_id )
    your_funcion_for_sms_send( $config, $type, $to, $sms_text, $data );

}, 10, 6 );
</pre></div>


<p>توضیحات:</p>



<ul class="wp-block-list"><li><strong>متغیر panel_id$ :</strong> شناسه پنل پیامکی فعال را بر میگرداند. در این قلاب حتما باید بررسی کنید که این متغیر برابر با نام پنل شما باشد. چراکه این قلاب همیشه زمانیکه پیامک قرار است ارسال شود اجرا میشود و باید مطمئن شوید سامانه فعال کاربر، سامانه پیامکی شماست.</li><li><strong>متغیر config$ :</strong> فیلدهایی که تعریف کردید درصورتی که توسط کاربر وارد شده باشد توسط این متغیر در دسترس هستند.</li><li><strong>متغیر type$ :</strong> بطور کلی هر پیامکی که قرار است ارسال شود یک شناسه منحصربفرد دارد. مثلا زمانی که قرار است کدفعالسازی ارسال شود مقدار متغیر type برابر با otp خواهد بود. به اینصورت میتوانید متوجه شوید دقیقا چه نوع پیامکی قرار است ارسال شود. در ادامه لیست تایپ‌ها را خواهید یافت.</li><li><strong>متغیر to$ :</strong> شماره موبایلی که باید پیامک به آن ارسال شود را بر میگرداند. ( بصورت: 9123456789 )</li><li><strong>متغیر sms_text$ :</strong> متن کامل پیامک برای ارسال را برمیگرداند. توجه داشته باشید که برای ارسال پیامک با الگو کاربردی ندارد و صرفا برای ارسال عادی مورد استفاده قرار میگیرد.</li><li><strong>متغیر data$ :</strong> این متغیر، اطلاعات اصلی یک پیامک را بر میگرداند. مثلا زمانی که قرار است کدفعالسازی ارسال شود ما در این آرایه میتوانیم کد فعالسازی را دریافت کنیم ( مثلا بصورت: <strong>data[&#8216;code&#8217;]$</strong> ) این مورد بیشتر برای ارسال پیامک‌های با الگو کاربرد دارد. با استفاده از متغیر <strong>type$</strong> نوع پیامک را بررسی میکنید و با استفاده از <strong>data$</strong> اطلاعات مورد نیاز را در پارامترهای پنل خود تعریف میکنید و در نهایت با استفاده از شناسه قالب، پیامک را ارسال میکنید. مقادیری که در هر type درون متغیر <strong>data$</strong> قرار دارند را در ادامه خواهید یافت.</li><li>میتوانید برای ارسال پیامک، یک تابع تعریف کنید و عملیات ارسال را در این تابع انجام دهید. توجه داشته باشید که نام این تابع باید منحصربفرد باشد برای نمونه از نام <strong>your_funcion_for_sms_send</strong> استفاده شده است.</li></ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">ارسال پیامک با الگو ( ارسال سریع‌ )</h2>



<p>اخیرا سامانه های پیامکی کشور، سرویسی تحت عنوان خط خدماتی اشتراکی ارائه میدهند که شما با استفاده از تعریف یک الگو میتوانید پیامک های مهم خود را حتی به بلاک لیست اپراتورها هم ارسال کنید. همانطور که پیش تر بیان شد برای ارسال با الگو باید از <strong>۲</strong> متغیر <strong>type$</strong> و <strong>data$</strong> کمک بگیرید.</p>



<p><strong>ابتدا بررسی کنید نوع پیامک چیست:</strong></p>



<p>( لازم است تمام تایپ‌های موجود در قالب بررسی شوند. لیست تمام تایپ‌هایی که تا به امروز به قالب اضافه شده‌اند را در ادامه در اختیار شما قرار خواهیم داد‌)</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_sms_send', function ( $panel_id, $config, $type, $to, $sms_text, $data )
{
 
    // check panel id
    if( 'YOUR_PANEL_NAME' == $panel_id ) {
        if( 'otp' == $type ) {
            $otp_code = $data&#91; 'code' ];
            // your code
        }
        if( 'ticket_new' == $type ) {
            $operator_name = $data&#91; 'name' ];
            // your code
        }
        if( 'ticket_reply_new' == $type ) {
            $operator_name = $data&#91; 'name' ];
            // your code
        }
    }
 
}, 10, 6 );
</pre></div>


<p>زمانیکه متوجه شوید type این پیامک برابر با otp است میتوانید مقدار <strong>code</strong> را از متغیر <strong>data$</strong> دریافت کنید. حالا فقط کافیست باتوجه به الگوریتم سامانه پیامکی مورد نظر، مقدار <strong>code</strong> را به همراه شناسه قالب (templateId) دریافت کنید و عملیات ارسال را با توجه به مستندات سامانه انجام دهید. ( میتوانید در فیلدها، موردی را برای شناسه قالب کد فعالسازی otp و type های دیگر در نظر بگیرید تا کاربر شناسه قالب خود را وارد کند سپس از طریق متغیر <strong>config$</strong> آن را دریافت کنید به عنوان مثال به اینصورت: <strong>config[ &#8216;template_id_otp&#8217; ]$</strong> ) </p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">مقادیر متغیر های type$ و data$</h2>



<p>توجه داشته باشید که این لیست با اضافه شدن type های جدیدتر به قالب، بروز میشود.</p>



<p><strong>مقادیری که متغیر type$ برمیگرداند:</strong> otp | ticket_new | ticket_reply_new | &#8230;</p>



<p>در نمونه کد زیر بررسی شده و در هر type مقادیر درون متغیر <strong>data$</strong> مشخص شده است:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
// $type: otp
if( 'otp' == $type ) {
    $otp_code = $data&#91; 'code' ];
}

// $type: ticket_new
if( 'ticket_new' == $type ) {
    $operator_name = $data&#91; 'name' ];
}

// $type: ticket_reply_new
if( 'ticket_reply_new' == $type ) {
    $operator_name = $data&#91; 'name' ];
}
</pre></div>


<p>نکته: درصورتی که درون آرایه data$ بیشتر از یک مورد باشد، با تعریف چند متغیر در قالب سامانه پیامکی میتوانید اطلاعات مورد نیاز برای ارسال پیامک را جایگزین کنید. ضمن اینکه نیازی نیست حتما چندین متغیر درون پیامک قرار داشته باشد.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">نمونه ساختار کلی افزودن یک سامانه پیامکی جدید</h2>



<p>ارسال پیامک بصورت عادی:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
// Add new panel to settings theme
add_filter( 'amzshyar_sms_panels', function ( $panels ) {
    // Add panel
    $panels&#91; 'YOUR_PANEL_NAME' ] = &#91;
        'title' =&gt; 'پنل پیامک آزمایشی',
        // Add fields in settings theme
        'fields' =&gt; &#91;
            &#91; 'name' =&gt; 'number', 'label' =&gt; 'شماره خط ارسال کننده' ],
            &#91; 'name' =&gt; 'username', 'label' =&gt; 'نام کاربری' ],
            &#91; 'name' =&gt; 'password', 'label' =&gt; 'رمز عبور' ]
        ]
    ];

    return $panels;
} );

// Add action on send new sms
add_action( 'amzshyar_sms_send', function ( $panel_id, $config, $type, $to, $sms_text, $data )
{

    // check panel id
    if( 'YOUR_PANEL_NAME' == $panel_id )
    your_funcion_for_sms_send( $config, $to, $sms_text );

}, 10, 6 );

// send sms text
function your_funcion_for_sms_send( $config, $to, $sms_text ) {
    if( ! empty( $config&#91; 'username' ] ) &amp;&amp; ! empty( $config&#91; 'password' ] ) &amp;&amp; ! empty( $config&#91; 'number' ] ) ) {
        // your code for sms send
    }
}
</pre></div>


<p>ارسال پیامک همزمان با الگو و عادی:</p>



<p>( در کد زیر درصورتی که کاربر templateId را در تنظیمات سامانه وارد نکرده باشد بصورت عادی ارسال میشود )</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
// Add action on send new sms
add_action( 'amzshyar_sms_send', function ( $panel_id, $config, $type, $to, $sms_text, $data )
{

    // check panel id
    if( 'YOUR_PANEL_NAME' == $panel_id )
    your_funcion_for_sms_send_fast( $config, $type, $to, $sms_text, $data );

}, 10, 6 );

// send sms fast
function your_funcion_for_sms_send_fast( $config, $type, $to, $sms_text, $data ) {
    $templateId = $config&#91; 'template_id_' . $type ];
    $parameters = '';

    if( ! empty( $templateId ) ) {

        if( 'otp' == $type ) {
            $parameters = $data&#91; 'code' ];
        }

        if( 'ticket_new' == $type ) {
            $parameters = $data&#91; 'name' ];
        }

        if( 'ticket_reply_new' == $type ) {
            $parameters = $data&#91; 'name' ];
        }
        
        if( ! empty( $parameters ) ) {
            // your code for fast sms send
        }

    } else {
        // send sms text
        your_funcion_for_sms_send( $config, $to, $sms_text );
    }
}

// send sms text
function your_funcion_for_sms_send( $config, $to, $sms_text ) {
    if( ! empty( $config&#91; 'username' ] ) &amp;&amp; ! empty( $config&#91; 'password' ] ) &amp;&amp; ! empty( $config&#91; 'number' ] ) ) {
        // your code for sms send
    }
}
</pre></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>پروفایل اساتید</title>
		<link>https://wpdone.ir/docs/help/%d9%be%d8%b1%d9%88%d9%81%d8%a7%db%8c%d9%84-%d8%a7%d8%b3%d8%a7%d8%aa%db%8c%d8%af/</link>
		
		<dc:creator><![CDATA[wpdone]]></dc:creator>
		<pubDate>Sat, 14 May 2022 19:08:13 +0000</pubDate>
				<guid isPermaLink="false">https://wpdone.ir/docs/?post_type=help&#038;p=593</guid>

					<description><![CDATA[سفارشی سازی پروفایل اساتید سایت]]></description>
										<content:encoded><![CDATA[
<p>سفارشی سازی پروفایل اساتید سایت</p>



<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_teacher_about_display</h2>



<p>حذف تب درباره از پروفایل استاد:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_teacher_about_display', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_teacher_statistics</h2>



<p>حذف آمارهای استاد:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_teacher_statistics', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_teacher_products_display</h2>



<p>حذف تب محصولات استاد:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_teacher_products_display', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_teacher_posts_display</h2>



<p>حذف تب مقالات استاد:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_teacher_posts_display', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_teacher_videos_display</h2>



<p>حذف تب ویدیوهای استاد:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_teacher_videos_display', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_teacher_podcasts_display</h2>



<p>حذف تب پادکست‌های استاد:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_teacher_podcasts_display', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_teacher_custom_tabs</h2>



<p>افزودن تب سفارشی جدید به پروفایل اساتید:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; highlight: [3,4,5,6,7,13]; title: ; notranslate">
add_filter( 'amzshyar_teacher_custom_tabs', function ( $tabs, $teacher_id ) {

	array_push( $tabs, &#91;
		'key' =&gt; 'tab1',
		'title' =&gt; 'تب سفارشی',
		'callback' =&gt; 'amzshyar_teacher_custom_tab_1'
	] );

	return $tabs;
}, 10, 2 );

function amzshyar_teacher_custom_tab_1( $teacher_id ) {
	echo 'your code';
}
</pre></div>


<div class="wp-block-image"><figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="885" height="330" src="https://wpdone.ir/docs/wp-content/uploads/2022/05/image-100.png" alt="" class="wp-image-594" srcset="https://wpdone.ir/docs/wp-content/uploads/2022/05/image-100.png 885w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-100-300x112.png 300w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-100-768x286.png 768w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-100-600x224.png 600w" sizes="(max-width: 885px) 100vw, 885px" /></figure></div>



<p>شما میتوانید بیش از یک تب سفارشی ایجاد کنید، به اینصورت:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; highlight: [3,4,5,6,7,8,9,10,11,12,13,19,23]; title: ; notranslate">
add_filter( 'amzshyar_teacher_custom_tabs', function ( $tabs, $teacher_id ) {

	array_push( $tabs, &#91;
		'key' =&gt; 'tab1',
		'title' =&gt; 'تب سفارشی اول',
		'callback' =&gt; 'amzshyar_teacher_custom_tab_1'
	] );

	array_push( $tabs, &#91;
		'key' =&gt; 'tab2',
		'title' =&gt; 'تب سفارشی دوم',
		'callback' =&gt; 'amzshyar_teacher_custom_tab_2'
	] );

	return $tabs;
}, 10, 2 );

function amzshyar_teacher_custom_tab_1( $teacher_id ) {
	echo 'your code';
}

function amzshyar_teacher_custom_tab_2( $teacher_id ) {
	echo 'your code';
}
</pre></div>


<div class="wp-block-image"><figure class="aligncenter size-full"><img decoding="async" width="881" height="317" src="https://wpdone.ir/docs/wp-content/uploads/2022/05/image-101.png" alt="" class="wp-image-596" srcset="https://wpdone.ir/docs/wp-content/uploads/2022/05/image-101.png 881w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-101-300x108.png 300w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-101-768x276.png 768w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-101-600x216.png 600w" sizes="(max-width: 881px) 100vw, 881px" /></figure></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>تغییر آیکون‌ها</title>
		<link>https://wpdone.ir/docs/help/%d8%aa%d8%ba%db%8c%db%8c%d8%b1-%d8%a2%db%8c%da%a9%d9%88%d9%86-%d9%87%d8%a7/</link>
		
		<dc:creator><![CDATA[wpdone]]></dc:creator>
		<pubDate>Sat, 14 May 2022 13:53:50 +0000</pubDate>
				<guid isPermaLink="false">https://wpdone.ir/docs/?post_type=help&#038;p=536</guid>

					<description><![CDATA[تمام آیکون های svg استفاده شده در قالب توسط این قلاب قابل ویرایش هستند]]></description>
										<content:encoded><![CDATA[
<p>تمام آیکون های svg استفاده شده در قالب توسط این قلاب قابل ویرایش هستند</p>



<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_icon</h2>



<p>تمامی آیکون‌ها با یک نام یکتا از طریق متغیر <strong>name$</strong> قابل شناسایی هستند.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; highlight: [3]; title: ; notranslate">
add_filter( 'amzshyar_icon', function ( $icon, $name ) {

    if( 'cart' == $name ) return '&lt;svg...';

    return $icon;
}, 10, 2 );
</pre></div>


<p>اگر قصد دارید چندین آیکون را تغییر دهید، بهتر است تمامی تغییرها در یک فیلتر انجام شود به اینصورت:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; highlight: [4,5,6]; title: ; notranslate">
add_filter( 'amzshyar_icon', function ( $icon, $name ) {
    switch ( $name )
    {
        case 'cart': return '&lt;svg...'; break;
        case 'notifications': return '&lt;svg...'; break;
        case 'search': return '&lt;svg...'; break;
        
        default:
        return $icon;
    }
}, 10, 2 );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">چطور نام آیکون ها را پیدا کنم؟</h2>



<p>برای یافتن نام آیکون‌ها باید از <strong>Inspect</strong> مرورگر استفاده کنید. به اینصورت که روی آیکون مورد نظر <strong>راست کلیک</strong> کنید سپس گزینه <strong>Inspect</strong> را بزنید. در این مرحله مرورگر بصورت خودکار element آیکون را انتخاب میکند.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img decoding="async" width="920" height="89" src="https://wpdone.ir/docs/wp-content/uploads/2022/05/image-51.png" alt="" class="wp-image-538" srcset="https://wpdone.ir/docs/wp-content/uploads/2022/05/image-51.png 920w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-51-300x29.png 300w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-51-768x74.png 768w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-51-600x58.png 600w" sizes="(max-width: 920px) 100vw, 920px" /></figure></div>



<p>نام هر آیکون درون مقدار ویژگی <strong>data-name</strong> قرار دارد. تمام آیکون‌های svg این attribute را دارا هستند. با پیدا کردن این نام و استفاده آن در فیلتر میتوانید return اختصاصی خود را داشته باشید.</p>



<p><strong>نکته:</strong> اگر قصد دارید بجای استفاده از svg از تگ img استفاده کنید حتما توجه داشته باشید که ممکن است در برخی از قسمت‌های قالب استایل مناسبی نداشته باشد. پس لازم است حتما استایل آن را بصورت اختصاصی اضافه کنید.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>لودینگ قالب</title>
		<link>https://wpdone.ir/docs/help/%d9%84%d9%88%d8%af%db%8c%d9%86%da%af-%d9%82%d8%a7%d9%84%d8%a8/</link>
		
		<dc:creator><![CDATA[wpdone]]></dc:creator>
		<pubDate>Fri, 13 May 2022 12:52:17 +0000</pubDate>
				<guid isPermaLink="false">https://wpdone.ir/docs/?post_type=help&#038;p=478</guid>

					<description><![CDATA[شخصی سازی لودینگ آغازین قالب]]></description>
										<content:encoded><![CDATA[
<p>شخصی سازی لودینگ آغازین قالب</p>



<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_splash_loading_color</h2>



<p> تغییر رنگ لودینگ:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_splash_loading_color', function ( $color ) {
    return '#2196f3';
} );
</pre></div>


<p><strong>نکته:</strong> بصورت پیشفرض از رنگ برند قالب استفاده میشود.</p>



<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_splash_loading_logo</h2>



<p>تغییر لوگوی لودینگ:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_splash_loading_logo', function ( $logo_url ) {
    return 'https://...';
} );
</pre></div>


<p><strong>نکته:</strong> بصورت پیشفرض از تصویر فاوآیکون (favicon) فراخوانی میشود.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>پایگاه دانش</title>
		<link>https://wpdone.ir/docs/help/%d9%be%d8%a7%db%8c%da%af%d8%a7%d9%87-%d8%af%d8%a7%d9%86%d8%b4/</link>
		
		<dc:creator><![CDATA[wpdone]]></dc:creator>
		<pubDate>Fri, 13 May 2022 11:13:24 +0000</pubDate>
				<guid isPermaLink="false">https://wpdone.ir/docs/?post_type=help&#038;p=475</guid>

					<description><![CDATA[قلاب ها در اختیار شما هستند برای تغییر در عملکرد پایگاه دانش]]></description>
										<content:encoded><![CDATA[
<p>قلاب ها در اختیار شما هستند برای تغییر در عملکرد پایگاه دانش</p>



<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_help_slug</h2>



<p>تغییر نامک ( slug ) اصلی پایگاه دانش:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_help_slug', function () {
    return 'help';
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_help_category_slug</h2>



<p>تغییر نامک ( slug ) اصلی دسته بندی پایگاه دانش:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_help_category_slug', function () {
    return 'help-category';
} );
</pre></div>


<hr class="wp-block-separator"/>



<p><strong>نکته مهم:</strong> ممکن است با تغییر نامک‌ها پایگاه دانش از دسترس خارج شود، لازم است بعد از تنظیم قلاب یکبار به قسمت پیوندهای یکتا وردپرس مراجعه کنید و روی دکمه <strong>ذخیره تغییرات</strong> کلیک کنید. با اینکار پیوندهای یکتای جدید در دسترس قرار خواهند گرفت.</p>



<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_help_category_posts_count</h2>



<p>تغییر تعداد نمایش آخرین مطالب هر دسته:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_help_category_posts_count', function ( $default ) {
    return 5;
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_cache</h2>



<p>بصورت پیشفرض برای افزایش سرعت و بهینه‌سازی بیشتر، بصورت خودکار پایگاه دانش cache میشود. درصورتی که تمایل به فعال بودن این سیستم ندارید میتوانید با استفاده کد زیر سیستم cache را متوقف کنید:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_knowledge_cache', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_base_template_index_top</h2>



<p>کدهای شما را به بالاترین قسمت صفحه اصلی پایگاه دانش اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_knowledge_base_template_index_top', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_base_template_index_bottom</h2>



<p>کدهای شما را به پایین‌ترین قسمت صفحه اصلی پایگاه دانش اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_knowledge_base_template_index_bottom', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_title</h2>



<p>تغییر عنوان اصلی پایگاه دانش در صفحه اصلی:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_knowledge_title', function ( $text ) {
    return $text;
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_base_template_category_top</h2>



<p>کدهای شما را به بالاترین قسمت صفحه دسته‌های پایگاه دانش اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_knowledge_base_template_category_top', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_base_template_category_bottom</h2>



<p>کدهای شما را به پایین‌ترین قسمت صفحه دسته‌های پایگاه دانش اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_knowledge_base_template_category_bottom', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_base_template_category_content_top</h2>



<p>کدهای شما را به بالاترین قسمت محتوای صفحه دسته‌های پایگاه دانش اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_knowledge_base_template_category_content_top', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_base_template_category_content_bottom</h2>



<p>کدهای شما را به پایین‌ترین قسمت محتوای صفحه دسته‌های پایگاه دانش اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_knowledge_base_template_category_content_bottom', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_base_template_post_top</h2>



<p>کدهای شما را به بالاترین قسمت صفحه مطلب پایگاه دانش اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_knowledge_base_template_post_top', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_base_template_post_bottom</h2>



<p>کدهای شما را به پایین‌ترین قسمت صفحه مطلب پایگاه دانش اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_knowledge_base_template_post_bottom', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_base_template_post_title_top</h2>



<p>کدهای شما را بالای عنوان اصلی صفحه مطلب پایگاه دانش اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_knowledge_base_template_post_title_top', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_base_template_post_content_top</h2>



<p>کدهای شما را بالای محتوای اصلی صفحه مطلب پایگاه دانش اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_knowledge_base_template_post_content_top', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_knowledge_base_template_post_content_bottom</h2>



<p>کدهای شما را پایین‌تر از محتوای اصلی صفحه مطلب پایگاه دانش اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_knowledge_base_template_post_content_bottom', function () {
    echo 'your code';
} );
</pre></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>پنل کاربری</title>
		<link>https://wpdone.ir/docs/help/%d9%be%d9%86%d9%84-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%db%8c/</link>
		
		<dc:creator><![CDATA[wpdone]]></dc:creator>
		<pubDate>Fri, 13 May 2022 10:22:38 +0000</pubDate>
				<guid isPermaLink="false">https://wpdone.ir/docs/?post_type=help&#038;p=469</guid>

					<description><![CDATA[قلاب های پنل کاربری به شما در ایجاد پنل سفارشی‌تر کمک میکند]]></description>
										<content:encoded><![CDATA[
<p>قلاب های پنل کاربری به شما در ایجاد پنل سفارشی‌تر کمک میکند</p>



<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_login_slug</h2>



<p>تغییر پیوند یکتا ( slug ) صفحه ورود پنل کاربری: ( بصورت پیشفرض: site . com / login )</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_account_login_slug', function () {
    return 'login';
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_change_url</h2>



<p>بصورت پیشفرض پنل کاربری قالب درصورتی که فعال باشد لینک های ورود، ثبت نام و فراموشی رمز عبور وردپرس را تغییر میدهد. درصورتی که تمایل به این کار ندارید میتوانید این ویژگی را غیرفعال کنید :</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_account_change_url', '__return_false' );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_default_avatar</h2>



<p>تغییر تصویر آواتار پیشفرض کاربران:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_account_default_avatar', function () {
    return 'https://your-address...';
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_login_remove_header|footer</h2>



<p>بصورت پیشفرض سربرگ و پاورقی از صفحه ورود پنل کاربری حذف شده شما میتوانید سربرگ و پاورقی را فعال کنید:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_account_login_remove_header', '__return_false' );
add_filter( 'amzshyar_account_login_remove_footer', '__return_false' );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_login_auth_code</h2>



<p>این قلاب برای تغییر کد فعالسازی قابل استفاده است. شما میتوانید نوع و تعداد کاراکترهای کدفعالسازی را تغییر دهید:</p>



<p>( کد زیر یک کد فعالسازی ۶ رقمی تولید میکند‌)</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_login_auth_code', function () {
    $code = rand( 100000, 999999 );
    return $code;
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_limit_time</h2>



<p>زمانیکه تلاش های نا موفق کاربر بیش از حد مجاز انجام شود، سیستم بصورت موقت کاربر را مسدود میکند. شما میتوانید زمان مسدودیت کاربر را افزایش یا کاهش دهید:</p>



<p>( در کد زیر محدودیت روی ۱۲ ساعت تنظیم شده است )</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_account_limit_time', function () {
    return ( 3600 * 12 );
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_login_resend_sms_code_time</h2>



<p>زمان درخواست ارسال مجدد پیامک کد فعالسازی را تغییر میدهد، بصورت پیشفرض ۶۰ ثانیه تنظیم شده است:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_account_login_resend_sms_code_time', function () {
    return 60;
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_pwdset_min_length</h2>



<p>حداقل تعداد کاراکترهای مجاز برای تنظیم رمز عبور را تغییر میدهد، بصورت پیشفرض ۶ کاراکتر تنظیم شده است:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_account_pwdset_min_length', function () {
    return 6;
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_limit_try</h2>



<p>حداکثر تعداد مجاز تلاش برای ورود به حساب کاربری، بصورت پیشفرض ۳ بار تنظیم شده است:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_account_limit_try', function () {
    return 3;
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_avatar_dir</h2>



<p>تغییر مسیر آپلود آواتار کاربر، دقت داشته باشید که حتما باید بصورت آرایه return شود. مقدار path مسیر آپلود فایل برای سیستم و مقدار url آدرس قابل دسترس پوشه برای نمایش تصویر آواتار به کاربر:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_account_avatar_dir', function () {
    return &#91;
        'path' =&gt; WP_CONTENT_DIR . '/uploads/users-avatar',
        'url' =&gt; content_url( 'uploads/users-avatar/' )
    ];
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_avatar_max_size_mb</h2>



<p>تغییر حداکثر اندازه مجاز برای آپلود آواتار کاربری، این مقدار به <strong>مگابایت</strong> باید وارد شود:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_account_avatar_max_size_mb', function () {
    return 2;
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_avatar_formats</h2>



<p>تغییر فرمت های مجاز برای آپلود آواتار کاربری، خروجی یک آرایه باید باشد:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_account_avatar_formats', function () {
    return &#91; 'jpg', 'jpeg', 'png' ];
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_avatar_size</h2>



<p>بصورت پیشفرض سایز آواتار کاربری روی ۱۰۰ در ۱۰۰ پیکسل تنظیم شده است، شما میتوانید این اعداد را تغییر دهید:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_account_avatar_size', function () {
    return &#91; 100, 100 ];
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_account_login_default_code</h2>



<p>تغییر کد پیشفرض کشور:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_account_login_default_code', function () {
    return '+98';
} );
</pre></div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">amzshyar_dashboard_title</h2>



<p>حذف عنوان صفحات پنل کاربری:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_dashboard_title', function ( $status, $key ) {
    return false;
}, 10, 2 );
</pre></div>


<p><strong>نکته ۱:</strong> متغیر key$ نامک صفحه جاری را برمیگرداند</p>



<p><strong>نکته ۲:</strong> فقط در صفحاتی کار میکند که توسط قالب مدیریت میشوند</p>



<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">amzshyar_dashboard_top</h2>



<p>کدهای شما را به بالاترین قسمت پیشخوان پنل کاربری قالب اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_dashboard_top', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">amzshyar_dashboard_center</h2>



<p>کدهای شما را به قسمت میانی پیشخوان پنل کاربری قالب اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_dashboard_center', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">amzshyar_dashboard_bottom</h2>



<p>کدهای شما را به پایین‌ترین قسمت پیشخوان پنل کاربری قالب اضافه میکند:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_dashboard_bottom', function () {
    echo 'your code';
} );
</pre></div>


<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">amzshyar_dashboard_items</h2>



<p>این قلاب میتواند یک آیتم جدید را به آیتم‌های پیشخوان اضافه کند. بصورت کلی به اینصورت استفاده میشود:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_dashboard_items', function () {
    echo 'your code';
} );
</pre></div>


<p><strong>مثال</strong>:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_action( 'amzshyar_dashboard_items', function () {
?&gt;
&lt;div class=&quot;dashboard-item&quot;&gt;
    &lt;div class=&quot;dashboard-item-wrapper&quot;&gt;
        &lt;div class=&quot;dashboard-item-icon&quot;&gt;
            &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; version=&quot;1.1&quot; width=&quot;24&quot; height=&quot;24&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path d=&quot;M12,3L1,9L12,15L21,10.09V17H23V9M5,13.18V17.18L12,21L19,17.18V13.18L12,17L5,13.18Z&quot; /&gt;&lt;/svg&gt;
        &lt;/div&gt;
        &lt;div class=&quot;dashboard-item-contents&quot;&gt;
            &lt;div class=&quot;dashboard-item-title&quot;&gt;۱۲ امتیاز&lt;/div&gt;
            &lt;div class=&quot;dashboard-item-desc&quot;&gt;کسب کردید&lt;/div&gt; 
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;?php
} );
</pre></div>


<p><strong>خروجی</strong>:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="894" height="101" src="https://wpdone.ir/docs/wp-content/uploads/2022/05/image-10.png" alt="" class="wp-image-473" srcset="https://wpdone.ir/docs/wp-content/uploads/2022/05/image-10.png 894w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-10-300x34.png 300w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-10-768x87.png 768w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-10-600x68.png 600w" sizes="auto, (max-width: 894px) 100vw, 894px" /></figure></div>


<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">amzshyar_dashboard_item_products</h2>



<p>حذف آیتم تعداد کل دوره‌های موجود در سایت:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_dashboard_item_products', '__return_false' );
</pre></div>


<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">amzshyar_dashboard_item_registrations</h2>



<p>حذف آیتم تعداد کل دوره‌های ثبت نام شده:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_dashboard_item_registrations', '__return_false' );
</pre></div>


<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">amzshyar_dashboard_item_unpaid</h2>



<p>حذف آیتم تعداد دوره‌های در انتظار پرداخت:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_dashboard_item_unpaid', '__return_false' );
</pre></div>


<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">amzshyar_dashboard_item_wallet</h2>



<p>حذف آیتم موجودی کیف پول:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_dashboard_item_wallet', '__return_false' );
</pre></div>


<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">amzshyar_add_product_downloads_btn</h2>



<p>افزودن دکمه جدید به لیست محصولات خریداری شده:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="671" height="192" src="https://wpdone.ir/docs/wp-content/uploads/2022/05/image-11.png" alt="" class="wp-image-474" srcset="https://wpdone.ir/docs/wp-content/uploads/2022/05/image-11.png 671w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-11-300x86.png 300w, https://wpdone.ir/docs/wp-content/uploads/2022/05/image-11-600x172.png 600w" sizes="auto, (max-width: 671px) 100vw, 671px" /></figure></div>

<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_add_product_downloads_btns', function ( $btns, $product ) {
    return $btns . ' &lt;a href=&quot;#&quot; class=&quot;amzshyar-buys-product-item-btn no-after&quot;&gt;دکمه سفارشی&lt;/a&gt;';
}, 10, 2 );
</pre></div>


<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">amzshyar_notifications_number_display</h2>



<p>تغییر تعداد نمایش اعلان‌ها:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_notifications_number_display', function ( $default ) {
    return $default;
} );
</pre></div>


<p><strong>نکته ۱:</strong> بصورت پیشفرض -1 برگردانده میشود برای نمایش تمام اعلانات‌</p>



<p>ن<strong>کته ۲:</strong> باتوجه به cache شدن اعلانات ممکن است بلافاصله بعد از قرار دادن قلاب تغییرات اعمال نشود</p>



<hr class="wp-block-separator has-css-opacity"/>



<h2 class="wp-block-heading">amzshyar_dashboard_notifications_date</h2>



<p>حذف زمان انتشار اعلانات:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_dashboard_notifications_date', '__return_false' );
</pre></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>نقشه راه ( roadmap )</title>
		<link>https://wpdone.ir/docs/help/%d9%86%d9%82%d8%b4%d9%87-%d8%b1%d8%a7%d9%87-roadmap/</link>
		
		<dc:creator><![CDATA[wpdone]]></dc:creator>
		<pubDate>Fri, 13 May 2022 10:02:59 +0000</pubDate>
				<guid isPermaLink="false">https://wpdone.ir/docs/?post_type=help&#038;p=467</guid>

					<description><![CDATA[نقشه راه ( roadmap ) فروشگاه خود را به راحتی با قلاب‌ها مدیریت کنید]]></description>
										<content:encoded><![CDATA[
<p>نقشه راه ( roadmap ) فروشگاه خود را به راحتی با قلاب‌ها مدیریت کنید</p>



<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_roadmap_all</h2>



<p>حذف تمام roadmap ها:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_roadmap_all', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_roadmap_product</h2>



<p>حذف roadmap از محصولات:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_roadmap_product', '__return_false' );
</pre></div>


<p>در این قلاب شما میتوانید به اطلاعات محصول بصورت زیر دسترسی داشته باشید:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
add_filter( 'amzshyar_roadmap_product', function ( $status, $product ) {
    return false;
}, 10, 2 );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_roadmap_post</h2>



<p>حذف roadmap از مقالات:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_roadmap_post', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_roadmap_podcast</h2>



<p>حذف roadmap از پادکست‌ها:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_roadmap_podcast', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_roadmap_video</h2>



<p>حذف roadmap از ویدیوها:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_roadmap_podcast', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_roadmap_help</h2>



<p>حذف roadmap از پایگاه دانش:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_roadmap_help', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">amzshyar_roadmap_home_icon</h2>



<p>حذف آیکون خانه از roadmap:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; gutter: false; title: ; notranslate">
add_filter( 'amzshyar_roadmap_home_icon', '__return_false' );
</pre></div>


<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">ساخت roadmap سفارشی</h2>



<p>اگر تابع amzshyar_roadmap را بدون ورودی استفاده کنید، بصورت خودکار درصورتی roadmap تعریف شده‌ای وجود داشته باشد نمایش داده میشود اما در مواقع پیش‌بینی نشده ممکن است نیاز داشته باشید یک نقشه راه اختصاصی مطابق با سبک طراحی قالب بسازید و آن را نمایش دهید برای اینکار میتوانید از کدهای زیر استفاده کنید:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: php; title: ; notranslate">
$maps = array(
    array(
        'id' =&gt; '',
        'title' =&gt; '',
        'url' =&gt; ''
    ),
    array(
        'id' =&gt; '',
        'title' =&gt; '',
        'url' =&gt; ''
    )
);
echo amzshyar_roadmap( $maps );
</pre></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
