دسترسی به که فیلدهای جت انجین از طریق PHP

دسترسی به فیلدهای جت انجین از طریق PHP

میزان مهارت مورد نیاز

مقدماتی

سختی پیاده سازی

مبتدی

مدت زمان اجرا

5 دقیقه

فهرست مطالب

جت انجین و (Advance Custom Field) ACF، دو پلاگین معروف در زمینه ایجاد تغییرات مورد نیاز کاربر در بک اند و موتور وردپرس هستند. این دو پلاگین به کاربر اجازه می‌دهند تا به راحتی تغییرات مورد نیاز خود را مانند ساخت پست‌های سفارشی یا ایجاد صفحاتی مانند تنظیمات پوسته انجام دهند. هر دو پلاگین کابردی و مناسب هستند و نسبت به هم مزیت‌هایی را دارند. از جمله استفاده از جت انجین با صفحه سازی مانند المنتور بسیار راحت است در حالی که برای استفاده از فیلدهای تنظیم شده در ACF و در المنتور باید از پلاگین‌های ثالث مثل Dynamic Content for Elementor استفاده کرد. در مقابل ACF برای ساخت فیلدها دارای انعطاف پذیری بیشتری می‌باشد.

چرا نیاز به دسترسی به فیلدهای جت انجین از طریق PHP وجود دارد؟

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

در این حالت با توجه به اینکه Jet Engine به شما اجازه نمی دهد فیلدهای ترکیبی از سایر فیلدها بسازید و محاسبات را انجام دهید، برای بدست آوردن مبلغ نیاز به ایجاد یک تابع توسط PHP دارید. به همین جهت می‌بایست بتوانید به فیلدهای جت انجین دسترسی داشته باشید. کد نویسی در وردپرس در کنار پلاگین‌هایی همچون المنتور و جت انجین می‌تواند به شما اجازه پیاده سازی قابلیت‌های بی‌شماری بدهد. بعنوان مثال قبلا برای اعتبار سنجی فرم شماره تلفن همراه در المنتور از قطعه کد دیگری استفاده کرده بودیم

حتما قبل از بارگذاری قطعه کدهای خود در سایت اصلی آن را در یک محیط توسعه سبک وردپرس تست کنید.

فیلدهای سفارشی در کجا قرار دارند؟

بر اساس نوع طراحی ساختر سایت، فیلدهای سفارشی در دو بخش می‌توانند قرار بگیرند. بخش اول فیلدهای مخصوص به محصول است. این فیلدها در پست سفارشی و در صفحه محصول یا خدمات قرار می‌گیرد. بخش دوم فیلدهای عمومی است. این بخش در صفحه تنظیمات قرار خواهند گرفت. توجه داشته باشید که صفحه تنظیمات با پست سفارشی کاملا متفاوت است و برای درک تفاوت آن می‌توانید به راهنمای رسمی ساخت پلاگین در وردپرس مراجعه کنید.

چگونه می‌توان در وردپرس تابع PHP درج کرد؟

نگران نباشید! حتی اگر برنامه نویسی بلد نیستید انجام این کار بسیار ساده است. راحت‌ترین روش برای درج کد PHP به منظور دسترسی به فیلدهای جت انجین در سایت وردپرسی استفاده از پلاگین‌هایی مانند WPCode می‌باشد. این پلاگین به شما اجازه می‌دهد تا کد مورد نظر خود را در تمامی سایت درج کنید. پلاگین‌های دیگری نیز برای انجام این کار وجود دارند.

دسترسی به فیلدهای جت انجین به کمک پلاگین WPCode
دسترسی به فیلدهای جت انجین به کمک پلاگین WPCode

در مرحله بعد کافی است از بخش Add Snippet بر روی گزینه Add New کلیک کنید.

درج اسنیپت در WPCode
درج اسنیپت در WPCode

حال بر روی گزینه Add Your Custom Code (New Snippet) کلیک کنید.

ساخت اسنیپت جدید در WPCode
ساخت اسنیپت جدید در WPCode

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

محل درج کد در WPCode
محل درج کد در WPCode

برای ذخیره کردن قطعه کد خود بر روی گزینه Save Snippet کلیک کنید و پس از ذخیره سازی، بر روی گزینه Inactive کلیک کنید تا قطعه کد شما فعال شده و در تمام سایت نمایش داده شود.

ذخیره اسنیپت در WPCode
ذخیره اسنیپت در WPCode
فعال سازی قطعه کد به منظور دسترسی به فیلدهای جت انجین
فعال سازی قطعه کد به منظور دسترسی به فیلدهای جت انجین

کدهای PHP برای دسترسی به فیلدهای جت انجین

قطعه کد کامل دسترسی به فیلدها در زیر نمایش داده شده است در ادامه به بررسی هر بخش از این قطعه کد می‌پردازیم. برای تست این قطعه کد، قبل از آن که بطور مستقیم از آن در وبسایت خود استفاده کنید پیشنهاد می کنم تا در یک محیط توسعه لوکال مانند داکر این قطعه کد را تست کنید.

function calculate_jet_engine_fields_variable($atts) {
    // Extract shortcode attributes
    $atts = shortcode_atts(array(
        'post_id' => get_the_ID(), // Default to current post ID if not provided
    ), $atts);

    // Get the post ID from the shortcode attributes
    $post_id = $atts['post_id'];

    // Get the values of fields A and B for the post
    $variable_1 = floatval(get_post_meta($post_id, 'variable_1_field_name', true));
    $variable_2 = floatval(get_post_meta($post_id, 'variable_2_field_name', true));

    // Get the value of field C from the options page "price_options"
    $option_variable_page = get_option('option_variable_page_name');
    $option_variable = isset($option_variable_page['option_variable_name']) ? floatval($option_variable_page['option_variable_name']) : 1;

    // Perform the calculation
    $calculated_variable = ($variable_1 * $variable_2) / $option_variable;

    // Return the formatted result
    return $calculated_variable;
}
add_shortcode('calculate_jet_engine_fields_variable', 'calculate_jet_engine_fields_variable');

بدنه تابع

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

function calculate_jet_engine_fields_variable($atts) {

}
add_shortcode('calculate_jet_engine_fields_variable', 'calculate_jet_engine_fields_variable');

دریافت مشخصات پست

برای دسترسی به فیلدهای ثبت شده در پست‌های سفارشی ابتدا باید ID مخصوص به پست را دریافت کرد و سپس از طریق آن به مقادیر ذخیره شده در فیلدهای جت انجین دسترسی داشت. این کار توسط قطعه کد زیر انجام می‌شود.

// Extract shortcode attributes
    $atts = shortcode_atts(array(
        'post_id' => get_the_ID(), // Default to current post ID if not provided
    ), $atts);

    // Get the post ID from the shortcode attributes
    $post_id = $atts['post_id'];

دریافت مقادیر فیلدهای جت انجین در پست سفارشی

برای دسترسی به متغیرها یک نام متغیر در نظر گرفته و به کمک تابع get_post_meta با نام ثبت شده برای متغیر در Jet Engine مقدار آن را فراخوانی می‌کنیم. همزمان با فراخوانی متغیرها به جهت انجام محاسبات ریاضی نوع آن‌ها را به Float تغییر می‌دهیم. توجه داشته باشید که برای عملکرد درست باید حتما نام متغیرها با نام ذخیره شده در جت انجین یکسان باشد. به عنوان مثال در قطعه کد زیر variable_1_field_name، باید دقیقا در جت انجین ذخیره شده باشد. در تصویر زیر محل مشخص شده نام فیلد را نشان می‌دهد.

محل درج نام فیلد در جت انجین
محل درج نام فیلد در جت انجین
    // Get the values of fields A and B for the post
    $variable_1 = floatval(get_post_meta($post_id, 'variable_1_field_name', true));
    $variable_2 = floatval(get_post_meta($post_id, 'variable_2_field_name', true));

دریافت مقادیر فیلدها در صفحه تنظیمات در منو

اگر متغیر در صفحه تنظیمات و بصورت عمومی تعریف شده بود، ابتدا یک متغیر برای دسترسی به صفحه تنظمیات تعریف می‌کنیم. سپس از طریق آن به اطلاعات فیلدهای جت انجین دسترسی پیدا می‌کنیم.

// Get the value of field C from the options page "price_options"
    $option_variable_page = get_option('option_variable_page_name');
    $option_variable = isset($option_variable_page['option_variable_name']) ? floatval($option_variable_page['option_variable_name']) : 1;

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

حال که تمامی متغیر‌ها فراخوانی شده‌اند می‌توانیم محاسبات خود را انجام داده و در نهایت نتایج بدست آمده را باز گردانیم.

    // Perform the calculation
    $calculated_variable = ($variable_1 * $variable_2) / $option_variable;

    // Return the formatted result
    return $calculated_variable;

می توانید برای نمایش نتابج محاسبات در المنتور از شورتکد تعریف شده استفاده کنید. در محل‌ مورد نظر با قرار دادن کد کوتاه [calculate_jet_engine_fields_variable] به مقادیر حاصل از محاسبات دسترسی داشته باشید.

سؤالات متداول

آیا می‌توان به مقادیر فیلدها در جت انجین به کمک کدهای PHP دسترسی داشت؟

بله، در واقع دسترسی به مقادیر ذخیره شده در فیلدهای جت انجین بسیار ساده است. تنها کافیست از تابع get_post_meta استفاده کنید. در این مقاله شیوه استفاده از آن را کاملا شرح داده‌ایم.

ACF یا Jet Engine کدام یک برای من مناسب تر است؟

پاسخ به این سؤال کاملا بستگی به پروژه شما دارد. اگر در پروژه خود متکی به استفاده از المنتور هستید قطعا جت انجین گزینه مناسب‌تری است. اما اگر بطور کامل پوسته را برنامه نویسی می‌کنید به جهت انعطاف پذیری بیشتر و وجود منابع بیشتر پلاگین ACF می‌تواند برای شما گزینه مناسب‌تری باشد.

جمع‌بندی

استفاده از کدهای PHP برای دسترسی به فیلدهای جت انجین بسیار کاربردی است و می‌تواند به شما توانایی اضافه کردن فیچرهای جدید به سایت را بدهد. در هنگام استفاده از این کدها باید حواستان به استفاده صحیح از نام فیلدهای سفارشی باشد. اگر برای سایت پوسته شخصی سازی شده با زبان برنامه‌نویسی PHP طراحی می‌کنید، استفاده از ACF می‌تواند مناسب تر باشد. به نظر می‌رسد، منابع در دسترس برای پلاگین ACF بیشتر باشند. این مقاله با رویکرد استفاده از جت انجین در ترکیب با المنتور نوشته شده است، هرچند که می‌توانید از آن در طراحی پوسته‌ها به کمک PHP نیز استفاه کنید.

{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}

فهرست مطالب

درخواست مشاوره رایگان
با ما تماس بگیرید

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