| 1 |
<?php |
| 2 |
|
| 3 |
namespace SyncBasalam\Admin\Components; |
| 4 |
|
| 5 |
defined('ABSPATH') || exit; |
| 6 |
|
| 7 |
class CommonComponents |
| 8 |
{ |
| 9 |
public static function renderIcon($icon) |
| 10 |
{ |
| 11 |
return sprintf( |
| 12 |
'<span class="dashicons %s basalom-icon-medium"></span>', |
| 13 |
esc_attr($icon) |
| 14 |
); |
| 15 |
} |
| 16 |
|
| 17 |
public static function renderInfoPopup($content, $unique_id = '') |
| 18 |
{ |
| 19 |
$info_icon_url = syncBasalamPlugin()->assetsUrl() . "/icons/info-black.svg"; |
| 20 |
$modal_id = 'basalam-info-modal-' . $unique_id; |
| 21 |
|
| 22 |
return sprintf( |
| 23 |
'<div class="basalam-info-trigger" data-modal-id="%s">' |
| 24 |
. '<img src="%s" alt="اطلاعات" class="basalam-info-icon" title="برای � |
| 25 |
شاهده توضیحات کلیک کنید">' |
| 26 |
. '</div>' |
| 27 |
. '<div id="%s" class="basalam-info-modal basalam-modal-display-none">' |
| 28 |
. '<div class="basalam-info-modal-overlay"></div>' |
| 29 |
. '<div class="basalam-info-modal-content">' |
| 30 |
. '<div class="basalam-info-modal-header">' |
| 31 |
. '<h3 class="basalam-modal-header-text">راهن� |
| 32 |
ا</h3>' |
| 33 |
. '<span class="basalam-info-modal-close">×</span>' |
| 34 |
. '</div>' |
| 35 |
. '<div class="basalam-info-modal-body">%s</div>' |
| 36 |
. '</div>' |
| 37 |
. '</div>', |
| 38 |
esc_attr($modal_id), |
| 39 |
esc_url($info_icon_url), |
| 40 |
esc_attr($modal_id), |
| 41 |
esc_html($content) |
| 42 |
); |
| 43 |
} |
| 44 |
|
| 45 |
public static function renderLabelWithTooltip($label_text, $tooltip_content, $position = 'top') |
| 46 |
{ |
| 47 |
$unique_id = sanitize_title($label_text); |
| 48 |
|
| 49 |
return sprintf( |
| 50 |
'<div class="basalam-label-container">' |
| 51 |
. '<label class="basalam-label">' |
| 52 |
. '<span class="basalam-label-text">%s</span>' |
| 53 |
. '%s' |
| 54 |
. '</label>' |
| 55 |
. '</div>', |
| 56 |
esc_html($label_text), |
| 57 |
self::renderInfoPopup($tooltip_content, $unique_id) |
| 58 |
); |
| 59 |
} |
| 60 |
|
| 61 |
public static function renderBtn($text, $name, $product_id, $nonce_name, $ajax = false) |
| 62 |
{ |
| 63 |
$nonce = wp_create_nonce($nonce_name); |
| 64 |
$url = $ajax ? admin_url('admin-ajax.php') : admin_url('admin-post.php'); |
| 65 |
echo '<button class="basalam-button basalam-action-button basalam-p basalam-a" |
| 66 |
data-url="' . esc_url($url) . '" |
| 67 |
data-action="' . esc_attr($name) . '" |
| 68 |
data-product-id="' . esc_attr($product_id) . '" |
| 69 |
data-_wpnonce="' . esc_attr($nonce) . '">' . esc_html($text) . '</button>'; |
| 70 |
} |
| 71 |
|
| 72 |
public static function renderLink($text, $link) |
| 73 |
{ |
| 74 |
echo '<a href="' . esc_url($link) . '" target="_blank" class="basalam-button basalam-btn basalam-p basalam-a">' . esc_html($text) . '</a>'; |
| 75 |
} |
| 76 |
|
| 77 |
public static function renderUnauthorizedError() |
| 78 |
{ |
| 79 |
echo '<div class="basalam-container"> |
| 80 |
<div class="basalam-error-message"> |
| 81 |
<p class="basalam-p">دسترسی ش� |
| 82 |
ا صحیح نیست، فرایند دریافت دسترسی را � |
| 83 |
جددا انجا� |
| 84 |
دهید و در صورت � |
| 85 |
شکل با پشتیبانی ارتباط برقرار کنید.</p> |
| 86 |
</div> |
| 87 |
</div>'; |
| 88 |
} |
| 89 |
|
| 90 |
public static function renderFaqByCategory($categories) |
| 91 |
{ |
| 92 |
foreach ($categories as $category) { |
| 93 |
$faqs = \SyncBasalam\Admin\Faq::getFaqByCategory($category); |
| 94 |
if (empty($faqs)) { |
| 95 |
continue; |
| 96 |
} |
| 97 |
echo '<div class="basalam-faq-category" data-category="' . esc_attr($category) . '">'; |
| 98 |
foreach ($faqs as $faq) { |
| 99 |
echo ' |
| 100 |
<div class="basalam-faq-item"> |
| 101 |
<div class="basalam-faq-question"> |
| 102 |
<h3>' . esc_html($faq['question']) . '</h3> |
| 103 |
<span class="basalam-faq-toggle">+</span> |
| 104 |
</div> |
| 105 |
<div class="basalam-faq-answer"> |
| 106 |
<p>' . esc_html($faq['answer']) . '</p> |
| 107 |
</div> |
| 108 |
</div> |
| 109 |
'; |
| 110 |
} |
| 111 |
echo '</div>'; |
| 112 |
} |
| 113 |
} |
| 114 |
} |
| 115 |
|