Watch
1
0
Fork
You've already forked Seyyed_arc
0
forked from hesabix/arc
Seyyed_arc/extraScripts/shabake-tamin/includes/class-st-frontend.php

148 lines
5.3 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* بارگذاری استایل و اسکریپت (فقط همراه شورت‌کد یا فیلتر).
*
* @package Shabake_Tamin
*/
defined( 'ABSPATH' ) || exit;
/**
* فرانت‌اند.
*/
final class Shabake_Tamin_Frontend {
/**
* @var self|null
*/
private static $instance = null;
/**
* @var bool
*/
private static $assets_enqueued = false;
/**
* @var bool
*/
private static $page_layout_styles_enqueued = false;
/**
* @return self
*/
public static function instance() {
if ( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
private function __construct() {
add_action( 'wp_enqueue_scripts', array( $this, 'register_assets' ), 5 );
}
/**
* ثبت handleها (بدون enqueue اجباری).
*/
public function register_assets() {
wp_register_style(
'shabake-tamin-catalog',
ST_PLUGIN_URL . 'assets/css/catalog-default.css',
array(),
ST_VERSION
);
wp_register_script(
'shabake-tamin-catalog',
ST_PLUGIN_URL . 'assets/js/catalog.js',
array(),
ST_VERSION,
true
);
wp_register_style(
'shabake-tamin-catalog-page',
ST_PLUGIN_URL . 'assets/css/catalog-page.css',
array( 'shabake-tamin-catalog' ),
ST_VERSION
);
}
/**
* enqueue یک‌بار برای کل صفحه.
*/
public static function enqueue_assets_once() {
if ( self::$assets_enqueued ) {
return;
}
self::$assets_enqueued = true;
wp_enqueue_style( 'shabake-tamin-catalog' );
wp_enqueue_script( 'shabake-tamin-catalog' );
$base = Shabake_Tamin_Hesabix_API::base_url();
wp_localize_script(
'shabake-tamin-catalog',
'shabakeTamin',
array(
'restBase' => esc_url_raw( rest_url( Shabake_Tamin_REST::NS . '/' ) ),
'apiPublicBase' => $base,
'configured' => Shabake_Tamin_Hesabix_API::is_configured(),
'noImageUrl' => esc_url_raw( ST_PLUGIN_URL . 'assets/images/noimage.png' ),
'i18n' => array(
'loadMore' => __( 'بارگذاری بیشتر', 'shabake-tamin' ),
'search' => __( 'جستجو در کاتالوگ…', 'shabake-tamin' ),
'brandFilterPlaceholder' => __( 'برند یا مدل…', 'shabake-tamin' ),
'contact' => __( 'تماس با تأمین‌کننده', 'shabake-tamin' ),
'name' => __( 'نام شما', 'shabake-tamin' ),
'contactField' => __( 'تلفن یا ایمیل', 'shabake-tamin' ),
'message' => __( 'متن پیام', 'shabake-tamin' ),
'captcha' => __( 'کد امنیتی', 'shabake-tamin' ),
'refreshCaptcha' => __( 'تصویر جدید', 'shabake-tamin' ),
'send' => __( 'ارسال', 'shabake-tamin' ),
'close' => __( 'بستن', 'shabake-tamin' ),
'sentOk' => __( 'پیام با موفقیت ثبت شد.', 'shabake-tamin' ),
'errorGeneric' => __( 'خطا در ارتباط با سرور.', 'shabake-tamin' ),
'notConfigured' => __( 'آدرس API در تنظیمات وردپرس ثبت نشده است.', 'shabake-tamin' ),
'priceNA' => __( 'تماس بگیرید', 'shabake-tamin' ),
'loading' => __( 'در حال بارگذاری…', 'shabake-tamin' ),
'emptyResults' => __( 'کالایی با این شرایط یافت نشد.', 'shabake-tamin' ),
'details' => __( 'جزئیات', 'shabake-tamin' ),
'detailLoadError' => __( 'بارگذاری جزئیات کالا ناموفق بود.', 'shabake-tamin' ),
'descriptionLabel' => __( 'توضیحات', 'shabake-tamin' ),
'shortDescriptionLabel' => __( 'خلاصه', 'shabake-tamin' ),
'expertReviewLabel' => __( 'بررسی تخصصی', 'shabake-tamin' ),
'galleryLabel' => __( 'گالری تصاویر', 'shabake-tamin' ),
'specsLabel' => __( 'مشخصات فنی', 'shabake-tamin' ),
'brandModelLabel' => __( 'برند / مدل', 'shabake-tamin' ),
'originLabel' => __( 'کشور سازنده', 'shabake-tamin' ),
'videoLabel' => __( 'ویدیو معرفی', 'shabake-tamin' ),
'minOrderLabel' => __( 'حداقل سفارش', 'shabake-tamin' ),
'leadTimeLabel' => __( 'زمان تحویل', 'shabake-tamin' ),
'daysSuffix' => __( 'روز', 'shabake-tamin' ),
'supplierLabel' => __( 'تأمین‌کننده', 'shabake-tamin' ),
'unitLabel' => __( 'واحد', 'shabake-tamin' ),
'updatedLabel' => __( 'به‌روزرسانی', 'shabake-tamin' ),
'phoneLabel' => __( 'تلفن', 'shabake-tamin' ),
'mobileLabel' => __( 'موبایل', 'shabake-tamin' ),
'addressLabel' => __( 'نشانی', 'shabake-tamin' ),
'locationLabel' => __( 'موقعیت', 'shabake-tamin' ),
'supplierContactTitle' => __( 'اطلاعات تماس تأمین‌کننده', 'shabake-tamin' ),
'callPhone' => __( 'تماس تلفنی', 'shabake-tamin' ),
'callMobile' => __( 'تماس با موبایل', 'shabake-tamin' ),
'resultCountTemplate' => __( '{shown} کالا از {total} نتیجه', 'shabake-tamin' ),
),
)
);
}
/**
* استایل چیدمان تمام‌صفحه / صفحهٔ عمومی (یک‌بار).
*/
public static function enqueue_page_layout_styles() {
if ( self::$page_layout_styles_enqueued ) {
return;
}
self::$page_layout_styles_enqueued = true;
wp_enqueue_style( 'shabake-tamin-catalog-page' );
}
}