تاوتم | پلاگین نویسی وردپرس | توسعه و پشتیبانی وبسایت
198 subscribers
26 photos
27 videos
1 file
64 links
📌 آخرین اطلاعیه و بروزرسانی محصولات

📎 لینک های مهم تاوتم:
https://tavtheme.com/info

💬 برای شخصی سازی و اضافه کردن امکانات جدید به اکانت زیر پیام دهید:
@mehdishamsab
Download Telegram
📌 کاربرد کد و ویژگی های کلیدی:

ساده‌سازی فرآیند خرید: با حذف فیلدهای غیرضروری، فرآیند خرید برای مشتری سریع‌تر و ساده‌تر می‌شود.

تمرکز بر اطلاعات ضروری: فقط اطلاعات مورد نیاز برای تحویل سفارش در ایران جمع‌آوری می‌شود.

کاهش خطاهای کاربران: با کاهش تعداد فیلدها، احتمال خطا در پر کردن فرم کاهش می‌یابد.

بهبود نرخ تبدیل: فرم ساده‌تر معمولاً منجر به تکمیل بیشتر خریدها می‌شود.




/**
* سفارشی‌سازی فیلدهای صفحه تسویه حساب ووکامرس
* فقط فیلدهای مورد نیاز را نگه می‌دارد و بقیه را حذف می‌کند
*/
add_filter('woocommerce_checkout_fields', 'tav_customize_checkout_fields');

function tav_customize_checkout_fields($fields) {
// لیست فیلدهایی که می‌خواهیم نگه داریم
$tav_allowed_fields = array(
'billing_first_name', // نام
'billing_last_name', // نام خانوادگی
'billing_email', // ایمیل (اختیاری)
'billing_phone', // شماره تلفن همراه
'billing_state', // استان
'billing_city', // شهر
'billing_address_1', // آدرس محل سکونت
'billing_postcode' // کد پستی
);

// حذف تمام فیلدهای بخش billing به جز موارد مورد نظر
foreach ($fields['billing'] as $tav_field_key => $tav_field) {
if (!in_array($tav_field_key, $tav_allowed_fields)) {
unset($fields['billing'][$tav_field_key]);
}
}

// حذف کامل بخش‌های دیگر که نیاز نداریم
unset($fields['shipping']);
unset($fields['order']);
unset($fields['account']);

// تنظیمات سفارشی برای فیلدهای باقیمانده
$fields['billing']['billing_email']['required'] = false; // ایمیل اختیاری

// تنظیم placeholder یا برچسب‌ها اگر نیاز باشد
$fields['billing']['billing_email']['label'] = 'ایمیل شما (اختیاری)';

return $fields;
}
🎯📣 آپدیت افزونه افزونه TAV حداقل و حداکثر سفارش و تخفیف پلکانی ووکامرس!

#آپدیت_افزونه | 3 خرداد 1404

📎 موارد بروز شده در ورژن 1.4.2 :

🔥رفع مشکل تداخل با HPOS ووکامرس
ایجاد شورت کد برای جداول تخفیف پلکانی (هم محصول ساده و هم متغییر)
نمایش درصد تخفیف در صفحه محصول و آرشیو زمانی که تخفیف پلکانی فعال است.
رفع چند باگ گزارش شده


🎯 دانلود افزونه

TavTheme | تاوتم ❤️
TavTheme.com

🌟 تاوتم، ابزارهای هوشمند برای فروشگاه‌های حرفه‌ای! 🌟

#افزونه_ووکامرس #مدیریت_سفارشات
🔹 کد غیرفعال کردن AJAX سبد خرید ووکامرس

📌 این کد دقیقاً چه کاری انجام می‌دهد؟
این کد تمامی رفتارهای AJAX سبد خرید ووکامرس را غیرفعال می‌کند و باعث می‌شود:
✔️ افزودن محصول به سبد خرید بدون رفرش صفحه انجام نشود.
✔️ آپدیت شدن خودکار سبد خرید غیرفعال شود.
✔️ پیام‌های لحظه‌ای ووکامرس حذف شوند.
✔️ درخواست‌های اضافی به سرور کاهش یابد.

🔧 چه مشکلاتی را حل می‌کند؟
1️⃣ تداخل با افزونه‌ها/تم‌های دیگر

بعضی از قالب‌ها (مثل Woodmart) یا افزونه‌ها ممکن است رفتار AJAX سبد خرید را به هم بزنند.

این کد از بروز مشکلاتی مثل آپدیت نشدن سبد خرید یا خطاهای جاوااسکریپت جلوگیری می‌کند.

2️⃣ بهبود عملکرد سایت

با حذف اسکریپت‌های غیرضروری (مثل wc-cart-fragments)، سرعت بارگذاری صفحه بهبود می‌یابد.

3️⃣ رفع خطاهای مرورگر

اگر اسکریپت‌های AJAX به درستی لود نشوند، ممکن است خطاهای JS ایجاد شود. این کد از این اتفاق جلوگیری می‌کند.

🚀 چه زمانی از این کد استفاده کنیم؟
🔸 وقتی می‌خواهید رفتار پیش‌فرض ووکامرس را داشته باشید (بدون AJAX).
🔸 وقتی قالب/افزونه شما با AJAX سبد خرید مشکل دارد.
🔸 وقتی می‌خواهید درخواست‌های HTTP کمتری به سرور ارسال شود.

⚠️ توجه:

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

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

📥 نحوه استفاده:
کد را در فایل functions.php قالب فرزند یا با استفاده از افزونه Code Snippets اضافه کنید.

بهینه‌سازی شده برای:

قالب Woodmart (غیرفعال کردن اسکریپت‌های اختصاصی آن)

ووکامرس استاندارد

🔗 TAVTHEME.com
@TAVTHEME
#تاوتم #ووکامرس #وردپرس #بهینه_سازی #Ajax #بدون_کد

/**
* کاملاً غیرفعال کردن AJAX سبد خرید ووکامرس
*/
function completely_disable_woocommerce_cart_ajax() {
// غیرفعال کردن اسکریپت‌های اصلی ووکامرس
wp_dequeue_script('wc-cart-fragments');
wp_deregister_script('wc-cart-fragments');
wp_dequeue_script('wc-add-to-cart');
wp_deregister_script('wc-add-to-cart');

// غیرفعال کردن اسکریپت‌های مخصوص تم Woodmart
wp_dequeue_script('wd-update-cart-fragments-fix');
wp_deregister_script('wd-update-cart-fragments-fix');
wp_dequeue_script('wd-woocommerce-notices');
wp_deregister_script('wd-woocommerce-notices');

// غیرفعال کردن رفتارهای AJAX
add_filter('woocommerce_add_to_cart_fragments', '__return_empty_array');
add_filter('woocommerce_add_to_cart_redirect', '__return_false');
add_filter('option_woocommerce_enable_ajax_add_to_cart', '__return_false');
}

// اجرا با اولویت بسیار بالا
add_action('wp_enqueue_scripts', 'completely_disable_woocommerce_cart_ajax', 99999);

// غیرفعال کردن کلاس‌های AJAX در دکمه‌ها
add_filter('woocommerce_loop_add_to_cart_args', function($args) {
$args['class'] = str_replace('ajax_add_to_cart', '', $args['class']);
return $args;
});

// غیرفعال کردن اسکریپت‌های اضافی در صفحه سبد خرید
add_action('wp_footer', function() {
if (function_exists('is_cart') && is_cart()) {
wp_dequeue_script('wc-cart');
}
}, 1);
🔒 دیگه نگران نفوذ به پنل مدیریت نباشید!
این کد به شما کمک میکنه:
دسترسی به صفحه لاگین و پنل ادمین رو فقط برای IP های خاص باز کنه
از سایت در برابر حمله های Brute Force محافظت کنه
برای سایت های حرفه ای که امنیت براشون مهمه عالیه

💻 کد رو همین الان تو functions.php سایتتون اضافه کنید!

👇 نظرتون رو بگید... نیاز به راهنمایی دارید؟

#وردپرس #امنیت_سایت #کد_کاربردی #توسعه_وب
// مسدود کردن دسترسی به صفحه ورود و پنل مدیریت به جز برای آی پی های خاص
function tav_restrict_admin_access() {
// اگر در حال انجام AJAX هستیم یا در صفحه ورود به API وردپرس هستیم، اجازه دسترسی بده
if (defined('DOING_AJAX') && DOING_AJAX || defined('XMLRPC_REQUEST') && XMLRPC_REQUEST) {
return;
}

$tav_allowed_ips = array('00.00.00.00', '00.00.00.00'); // آی پی های مجاز
$tav_current_ip = $_SERVER['REMOTE_ADDR'];

// اگر آی پی کاربر در لیست مجاز است، اجازه دسترسی بده
if (in_array($tav_current_ip, $tav_allowed_ips)) {
return;
}

// مسدود کردن صفحه ورود
if (strpos($_SERVER['REQUEST_URI'], 'wp-login.php') !== false) {
wp_redirect(home_url());
exit;
}

// مسدود کردن پنل مدیریت برای کاربرانی که لاگین نکرده‌اند
if (is_admin() && !current_user_can('administrator')) {
wp_redirect(home_url());
exit;
}
}
add_action('init', 'tav_restrict_admin_access');




🔗 TAVTHEME.com
@TAVTHEME
🎯📣 آپدیت افزونه ثبت سفارش در واتساپ (رایگان)

#آپدیت_افزونه | 13 مرداد 1404

📎 موارد بروز شده در ورژن 1.6.3 :

📌 رفع مشکل تداخل با HPOS ووکامرس
⚙️ افزودن امکان انتخاب موقعیت دکمه واتساپ توسط ادمین (انتخاب هوک ووکامرس)
🎛 افزودن گزینه نمایش دکمه فقط با شورت‌کد [tav_whatsapp_button]
📂 افزودن انتخاب چندگانه دسته‌بندی محصولات (نمایش دکمه فقط در دسته‌های انتخاب‌شده)
📦 افزودن متاباکس به صفحه ویرایش محصول برای مخفی‌سازی دکمه واتساپ در هر محصول به صورت مجزا

🌍 پشتیبانی کامل از افزونه Polylang:
📝 امکان وارد کردن متن‌های واتساپ برای هر زبان فعال
🌐 نمایش متن دکمه و پیام واتساپ بر اساس زبان فعلی سایت
🔄 تولید خودکار فیلدهای ترجمه‌پذیر برای همه زبان‌های فعال
ℹ️ نمایش پیام راهنما برای ترجمه و لینک به افزونه Polylang در تنظیمات
🛡 بهبود منطق fallback برای ترجمه‌ها و جلوگیری از نمایش متن خالی

🐞 رفع چندین باگ گزارش‌شده و بهبود ساختار کد


🎯 دانلود افزونه نسخه فارسی و انگلیسی:
https://tavtheme.com/product/tav-wp-whatsapp-order/

TavTheme | تاوتم ❤️
TavTheme.com

🌟 تاوتم، ابزارهای هوشمند برای فروشگاه‌های حرفه‌ای! 🌟
🎯📣 افزونه تخفیف اتوماتیک سبد خرید

#آپدیت_افزونه | 5 مرداد 1404

📎 موارد بروز شده در ورژن 2.1.1 :

🚨 استایل‌دهی بخش‌های مدیریت با استفاده از !important برای جلوگیری از تداخل با قالب یا افزونه‌ها
🎨 نمایش پس‌زمینه خاکستری برای نوار پیشرفت (progress bar) حتی زمانی که مقدار پر نشده است
🔧 رفع مشکل بروزرسانی ایجکسی نوار پیشرفت پس از تغییر تعداد یا حذف آیتم سبد خرید

🌐 پشتیبانی کامل از چندزبانه (Polylang): نمایش فیلد جداگانه برای هر زبان در تنظیمات و فرانت‌اند
💬 افزودن پشتیبانی از متغیر {discount} در پیام قبل از تخفیف (علاوه بر {remaining})
📝 به‌روزرسانی توضیحات فیلدهای مدیریت برای راهنمایی استفاده از {remaining} و {discount}

📖 تکمیل و بهبود ترجمه فارسی برای رشته‌های جدید و قبلی
🛠 اصلاح مسیر بارگذاری فایل‌های CSS و JS در مدیریت و فرانت‌اند
📊 افزودن لاگ دیباگ برای بروزرسانی ایجکسی نوار پیشرفت و رفع مشکلات مرتبط

🐞 رفع باگ‌ها و بهبود کلی کد



🎯 دانلود افزونه نسخه فارسی و انگلیسی:
https://tavtheme.com/product/shopping-cart-automatic-discount-plugin/

TavTheme | تاوتم ❤️
TavTheme.com
2
🎯📣 افزونه محرک های فروش برای ووکامرس | Sales Triggers For Woocommerce

#آپدیت_افزونه | 16 مرداد 1404


📎 موارد بروز شده در ورژن 3.3.3 :

🌍 بهبود ترجمه و بین‌المللی‌سازی افزونه
(تمام رشته‌های فارسی به انگلیسی و تابع ترجمه وردپرس تبدیل شد)

بهبود ظاهر و تجربه کاربری بخش تنظیمات

🐞 رفع برخی مشکلات جزئی گزارش شده

تکمیل و بهینه‌سازی کدها



🎯 دانلود افزونه نسخه فارسی و انگلیسی:
https://tavtheme.com/product/sales-triggers-for-woocommerce/

TavTheme | تاوتم ❤️
TavTheme.com
🔥1
🚀 راهنمای استفاده رایگان از Cursor Pro Trial 🚀



در کل برای استفاده از نرم‌افزار Cursor باید یک حساب یا با جیمیل 📧 یا با اکانت گیت هاب 🐙 یا با ایمیل یاهو 📮 و ... داشته باشید.

هر اکانت تازه بصورت یک دوره ۱۴ روزه pro trial دارد که شامل ۱۵۰ عدد درخواست پریمیوم 💎 می‌شود.

شما بعد از استفاده و اتمام تمام درخواست‌های پریمیوم باید به شرح زیر عمل کنید:

۱- وارد سایت Cursor شده و با همان حسابی که داشتین ازش استفاده می‌کردین لاگین کنید 🔑.

۲- در قسمت Account؛ پایینش گزینه‌ای هست به اسم Delete Account ، اونو بزنید و اکانتتون رو حذف کنید.

۳- بعد از حذف اکانت، بعد از چند دقیقه ایمیلی به ایمیل اون حسابی که حذف کردین می‌آید 📩 مبنی بر اینکه شرایط استفاده از پلن free یا همون pro trial مهیاست، می‌تونین استفاده کنید.

۴- در نهایت دوباره با همون ایمیل می‌تونین حساب جدید کورسر بسازید و استفاده کنید 🆕.

۵- بعد از تکرار چندین دفعه از این حالت بصورت مداوم نرم‌افزار Cursor دیگه اجازه استفاده از حساب‌های تریال رو بهتون نمیده 🚫، در این حالت باید این کارها رو انجام بدین.

۶- موقع نصب نرم‌افزار Cursor؛ این نرم‌افزار یک Machine id 💻 در سیستم شما در پوشه app data بصورت یک فایل json ذخیره می‌کنه. تنها کاری که باید بکنید اینه که اون Machine id رو عوض کنید. اما به چه صورت؟ 🤔

۷- اولاً قبل هر چیزی شما باید کلاً نرم‌افزار Cursor فعلی رو از ویندوز حذف کنید 🗑 و بعد این فایل پایتون 🐍 رو از گیت هاب دانلود کنید و اجرا کنید.

https://github.com/yeongpin/cursor-free-vip

۸- اون فایل پایتون وقتی اجرا شد گزینه شماره یک که مربوط به تغییر دادن Machine id هست رو بزنید 🔄 و بعد از اتمام نرم‌افزار کامل ببندینش و نرم‌افزار Cursor رو دوباره نصب کنید 🔄 و دوباره می‌تونین از چندین بار حساب pro trial بهره برداری کنید 😊.

---

و در نهایت با بازنشر این پست ممنون میشم کمک کنید تا این اطلاعات به دست دیگر دوستان برنامه نویسمون برسه 💚🙏.
2
تاوتم | پلاگین نویسی وردپرس | توسعه و پشتیبانی وبسایت pinned «🚀 راهنمای استفاده رایگان از Cursor Pro Trial 🚀 در کل برای استفاده از نرم‌افزار Cursor باید یک حساب یا با جیمیل 📧 یا با اکانت گیت هاب 🐙 یا با ایمیل یاهو 📮 و ... داشته باشید. هر اکانت تازه بصورت یک دوره ۱۴ روزه pro trial دارد که شامل ۱۵۰ عدد درخواست پریمیوم…»
tavtheme_product_buyers_meta_box.zip
3 KB
🚀 با قطعه کدی که بر اساس نیاز یکی از کاربران عزیزمان نوشته‌ایم، می‌توانید بدون نصب هیچ افزونه‌ای:

📌 در بخش ویرایش محصولات یک متاباکس ویژه داشته باشید که تمام جزئیات فروش محصول شامل:
🔹 نام خریداران
🔹 ایمیل
📱 شماره موبایل
📅 تاریخ و ساعت آخرین خرید
🛒 تعداد محصول خریداری شده

را نمایش می‌دهد!

😍 این امکان به شما کمک می‌کند تا:
به راحتی خروجی Excel بگیرید.
📊 داده‌ها را در نرم‌افزارهای مارکتینگ خود استفاده کنید.
✉️ مثلاً ایمیل‌های خریداران را جدا کنید و در سیستم ایمیل مارکتینگ خود وارد نمایید.

⚡️ این ابزار کوچک ولی قدرتمند:
زمان شما را ذخیره می‌کند.
📈 کار بازاریابی شما را بسیار آسان‌تر می‌کند!
2
🎯📣 افزونه دکمه تماس شناور تاو


#آپدیت_افزونه | 18 مرداد 1404


📎 موارد بروز شده در ورژن 1.4.0 :

ترجمه: پشتیبانی از Polylang/WPML (متن دکمه و گزینه‌های تماس)
RTL/LTR: چیدمان خودکار بر اساس زبان (ادمین + فرانت)
موقعیت دکمه: حالت‌های دستی/خودکار/معکوس + رفع باگ جهت
بهبودها:
رابط ادمین دو زبانه (FA/EN)
امن‌سازی داده‌ها + فالبک هوشمند ترجمه
رفع باگ‌های جزئی



🎯 دانلود افزونه نسخه فارسی و انگلیسی:
https://tavtheme.com/product/floating-contact-button/

TavTheme | تاوتم ❤️
TavTheme.com
1
درگاه لود نمی‌شد چون… فیلترشکنش روشن بود! 🧱

ما یه پاپ‌آپ ساختیم که توی صفحه پرداخت
بعد از ۳ ثانیه ظاهر می‌شه و می‌گه:
«اگه پرداخت انجام نمی‌شه، فیلترشکن رو خاموش کن!»

نتیجه؟
🔸 خطای کمتر
🔸 سفارش موفق بیشتر
🔸 تجربه حرفه‌ای‌تر

📌 کد کاملش تو پست بعدیه.
👈 سیو کن، برای همکارات هم بفرست!

#فیلترشکن #درگاه_بانکی #ووکامرس #پرداخت_موفق #تجربه_کاربری


/**
* Author: TavTheme
* Website: https://tavtheme.com/
* Instagram: @tavtheme
*/

add_action('wp_footer', 'tav_custom_checkout_popup_notice');
function tav_custom_checkout_popup_notice() {
if (is_checkout() && !is_order_received_page()) {
?>
<div id="checkout-popup-overlay" style="display: none;">
<div id="checkout-popup-box">
<h3>توجه!</h3>
<p>در صورتی که پرداخت شما انجام نمی‌شود، لطفاً فیلترشکن خود را غیرفعال کنید یا مجدد تلاش نمایید.</p>
<button id="close-popup-btn">متوجه شدم</button>
</div>
</div>

<style>
#checkout-popup-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
backdrop-filter: blur(3px);
z-index: 999999;
display: flex;
justify-content: center;
align-items: center;
}

#checkout-popup-box {
background: #fff;
padding: 30px;
border-radius: 12px;
text-align: center;
max-width: 400px;
width: 90%;
box-shadow: 0 5px 15px rgba(0,0,0,0.3);
animation: fadeIn 0.3s ease-out;
}

#checkout-popup-box h3 {
margin-bottom: 15px;
color: #d32f2f;
font-size: 22px;
}

#checkout-popup-box p {
font-size: 16px;
line-height: 1.6;
margin-bottom: 25px;
}

#close-popup-btn {
padding: 12px 25px;
background-color: #d32f2f;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 16px;
transition: background-color 0.3s;
}

#close-popup-btn:hover {
background-color: #b71c1c;
}

@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
</style>

<script>
document.addEventListener('DOMContentLoaded', function() {
// Show popup after 3 seconds
setTimeout(function() {
document.getElementById('checkout-popup-overlay').style.display = 'flex';
}, 3000);

// Close button functionality
document.getElementById('close-popup-btn').addEventListener('click', function() {
document.getElementById('checkout-popup-overlay').style.display = 'none';
});

// Close when clicking outside the box
document.getElementById('checkout-popup-overlay').addEventListener('click', function(e) {
if (e.target === this) {
this.style.display = 'none';
}
});
});
</script>
<?php
}
}
🎯📣 افزونه اعلان کاهش قیمت و تخفیف محصولات ووکامرس


#آپدیت_افزونه | 19 مرداد 1404


📎 نسخه 3.9.4 / 19 مرداد 1404

افزودن کمک‌تابع‌های چندزبانه (Polylang/WPML):
🌐 تشخیص خودکار زبان‌های فعال و نمایش فیلد مستقل برای هر زبان در ادمین
🔄 بازیابی مقدار ترجمه‌شده در زمان اجرا با fallback مناسب
⚙️ افزودن مقادیر پیش‌فرض چندزبانه هنگام نصب برای تب‌های ترجمه و پیام‌های اعلان (fa/en یا تک‌زبانه بر اساس locale)

📂 دسته‌بندی‌ها (نمایش برای دسته‌بندی‌ها):
🗂 رابط ادمین گروه‌بندی‌شده بر اساس زبان + بزرگ‌تر شدن سلکت‌باکس برای UX بهتر
✔️ در فرانت‌اند انتخاب‌ها روی تمام ترجمه‌های دسته و زیرشاخه‌ها اعمال می‌شود

🖥 بهبود مودال:
🎯 قرارگیری دقیق در مرکز صفحه روی همه دیوایس‌ها
افزودن دکمه بستن و بستن با کلیک روی بک‌دراپ
🧩 جاوااسکریپت سازگار با چند تریگر (عادی + شورتکد + المنتور) و چند نمونه مودال
⏸️ باز نشدن خودکار در بارگذاری صفحه؛ فقط با کلیک باز می‌شود

🐞 بهبودها و رفع اشکالات کلی



🎯 دانلود افزونه نسخه فارسی و انگلیسی:
https://tavtheme.com/product/price-drop-notifier-for-woocommerce

TavTheme | تاوتم ❤️
TavTheme.com
🎯 فیلتر حرفه‌ای محصولات تخفیف‌دار در پنل ووکامرس!

تا حالا شده بخوای توی پنل وردپرس فقط محصولاتی رو ببینی که تخفیف خوردن؟
یا مثلاً بخوای بدونی کدوم محصولات اصلاً تخفیف ندارن؟
😩 و از همه بدتر، بین محصولات ناموجود گم نشی؟

با این تکه کد ساده اما کاربردی، یه فیلتر جدید به بخش "محصولات" پنل ووکامرس اضافه می‌شه به اسم:

🟢 «براساس وضعیت فروش»

می‌تونی انتخاب کنی:

فقط محصولات در فروش ویژه رو ببینی

فقط محصولات بدون تخفیف

و محصولات ناموجود هم از لیستت حذف می‌شن!

💡 ایده‌آله برای مدیریت سریع کمپین‌ها، بررسی قیمت‌گذاری‌ها و نظم دادن به پنل فروشگاهت.

/**
* Author: TavTheme
* Website: https://tavtheme.com/
* Instagram: @tavtheme
*/

// افزودن فیلتر کشویی به لیست محصولات در پنل مدیریت
add_action( 'restrict_manage_posts', 'tav_filter_products_by_sale_status', 9999 );
function tav_filter_products_by_sale_status() {
global $typenow;

if ( 'product' === $typenow ) {
$selected = isset( $_GET['sale_status'] ) ? $_GET['sale_status'] : '';
?>
<select name="sale_status">
<option value="">براساس وضعیت فروش</option>
<option value="on_sale" <?php selected( $selected, 'on_sale' ); ?>>در فروش ویژه</option>
<option value="not_on_sale" <?php selected( $selected, 'not_on_sale' ); ?>>در فروش ویژه نیستند</option>
</select>
<?php
}
}

// اعمال فیلتر به کوئری لیست محصولات
add_filter( 'request', 'tav_filter_products_query_by_sale_status' );
function tav_filter_products_query_by_sale_status( $query_vars ) {
global $typenow;

if ( 'product' === $typenow && isset( $_GET['sale_status'] ) && '' !== $_GET['sale_status'] ) {
$sale_status = sanitize_text_field( wp_unslash( $_GET['sale_status'] ) );

// اطمینان از وجود meta_query
if ( ! isset( $query_vars['meta_query'] ) || ! is_array( $query_vars['meta_query'] ) ) {
$query_vars['meta_query'] = array();
}

// حذف محصولات ناموجود
$query_vars['meta_query'][] = array(
'key' => '_stock_status',
'value' => 'outofstock',
'compare' => '!=',
);

if ( 'on_sale' === $sale_status ) {
// فقط محصولاتی که sale price دارند (تخفیف خورده‌اند)
$query_vars['meta_query'][] = array(
'key' => '_sale_price',
'value' => '',
'compare' => '!=',
);
} elseif ( 'not_on_sale' === $sale_status ) {
// محصولاتی که sale price ندارند یا خالی است
$query_vars['meta_query'][] = array(
'relation' => 'OR',
array(
'key' => '_sale_price',
'compare' => 'NOT EXISTS',
),
array(
'key' => '_sale_price',
'value' => '',
'compare' => '=',
),
);
}
}

return $query_vars;
}
1
💻 کدی آماده کردیم که به راحتی می‌تونه عدد رهگیری یا هر عدد طولانی رو از متن پیامک‌هات جدا کنه

📥 فقط کافیه متن کامل پیامک رو داخل فیلد وارد کنی ✍️
🔎 اسکریپت به صورت هوشمند عددها رو بررسی می‌کنه و عدد معتبر رو جدا می‌کنه 📊
🎨 ظاهر اینپوت هم بسته به درست یا غلط بودن تغییر رنگ میده (سبز = درست / قرمز = خطا) 🌈
⚡️ دیگه لازم نیست مشتریت دستی بین متن طولانی دنبال کد رهگیری بگردی 🚀

🔗 مخصوص برنامه‌نویس‌ها و کسایی که دنبال سرعت و دقت هستن 👨‍💻👩‍💻
<input type="text" class="tav_barcode_field" placeholder="کل متن پیامک را وارد کنید">

<script>
document.addEventListener("DOMContentLoaded", function() {
const tav_inputs = document.querySelectorAll(".tav_barcode_field");
const tav_minLength = 10;
const tav_maxLength = 30;

tav_inputs.forEach(function(tav_input) {
tav_input.addEventListener("input", function(e) {
let tav_value = e.target.value
.replace(/[۰-۹]/g, d => String.fromCharCode(d.charCodeAt(0) - 1728))
.replace(/[٠-٩]/g, d => String.fromCharCode(d.charCodeAt(0) - 1632))
.trim();

let tav_result = null;

// 🔹 ساده و هوشمند: فقط به دنبال اعداد با طول مناسب
let tav_numbers = tav_value.match(/\d+/g) || [];

for (let tav_number of tav_numbers) {
if (tav_number.length >= tav_minLength && tav_number.length <= tav_maxLength) {
tav_result = tav_number;
break; // اولین عدد با طول مناسب را بگیر
}
}

// نمایش نتیجه
if (tav_result) {
e.target.value = tav_result;
console.log("عدد استخراج شده:", tav_result);

tav_input.style.borderColor = "green";
tav_input.style.backgroundColor = "#f0fff0";
} else {
tav_input.style.borderColor = "#ff4444";
tav_input.style.backgroundColor = "#fff0f0";

// اگر متن وارد شده ولی عدد معتبر نیست
if (tav_value.length > 0) {
console.log("خطا: عدد معتبر پیدا نشد");
}
}
});
});
});
</script>
یه کد ساده نوشتیم که توی صفحه پرداخت ووکامرس
یه تیک اضافه می‌کنه:
«مایل هستید محصول به صورت کادویی ارسال شود؟»
با هزینه دلخواه (مثلاً ۲۰ تومن)

🎯 تجربه خرید بهتر
💰 درآمد جانبی
#بسته_هدیه #افزونه_ووکامرس #افزایش_فروش

/**
* Author: TavTheme
* Website: https://tavtheme.com/
* Instagram: @tavtheme
*/

// 1. نمایش چک‌باکس بسته‌بندی هدیه در صفحه تسویه‌حساب
add_action('woocommerce_review_order_before_submit', 'tav_gift_wrap_option');
function tav_gift_wrap_option() {
?>
<div id="gift_wrap_checkbox" style="margin-bottom: 15px;">
<label>
<input type="checkbox" class="input-checkbox" name="gift_wrap" id="gift_wrap" value="1" />
مایل هستید محصول به صورت کادویی ارسال شود؟ (۲۰,۰۰۰ تومان)
</label>
</div>
<?php
}

// 2. افزودن هزینه بسته‌بندی هدیه به سبد خرید به‌صورت ایجکس
add_action('woocommerce_cart_calculate_fees', 'tav_add_gift_wrap_fee', 20, 1);
function tav_add_gift_wrap_fee($cart) {
if (is_admin() && !defined('DOING_AJAX')) return;

// بررسی مقدار gift_wrap در فرم ایجکس
$is_gift_wrap = false;

if (isset($_POST['post_data'])) {
parse_str($_POST['post_data'], $parsed_data);
if (!empty($parsed_data['gift_wrap'])) {
$is_gift_wrap = true;
}
} elseif (!empty($_POST['gift_wrap'])) {
$is_gift_wrap = true;
}

// اعمال هزینه در سبد خرید
if ($is_gift_wrap) {
$cart->add_fee('هزینه بسته‌بندی هدیه', 20000);
}
}

// 3. اجرای ایجکس هنگام زدن یا برداشتن تیک بسته‌بندی هدیه
add_action('woocommerce_after_checkout_form', 'tav_gift_wrap_script');
function tav_gift_wrap_script() {
?>
<script type="text/javascript">
jQuery(function($){
$('form.checkout').on('change', '#gift_wrap', function(){
$('body').trigger('update_checkout');
});
});
</script>
<?php
}

// 4. ذخیره اطلاعات gift_wrap در سفارش
add_action('woocommerce_checkout_create_order', 'tav_save_gift_wrap_option', 10, 2);
function tav_save_gift_wrap_option($order, $data) {
if (isset($_POST['gift_wrap']) && $_POST['gift_wrap'] == '1') {
$order->update_meta_data('gift_wrap', 'بله، بسته‌بندی هدیه انتخاب شده است.');
}
}

// 5. نمایش gift_wrap در پنل ادمین سفارش
add_action('woocommerce_admin_order_data_after_billing_address', 'tav_display_gift_wrap_in_admin', 10, 1);
function tav_display_gift_wrap_in_admin($order){
$gift_wrap = $order->get_meta('gift_wrap');
if ($gift_wrap) {
echo '<p><strong>بسته‌بندی هدیه:</strong> ' . esc_html($gift_wrap) . '</p>';
}
}

// 6. نمایش gift_wrap در صفحه جزئیات سفارش برای مشتری
add_action('woocommerce_order_details_after_order_table', 'tav_display_gift_wrap_on_order_details');
function tav_display_gift_wrap_on_order_details($order) {
$gift_wrap = $order->get_meta('gift_wrap');
if ($gift_wrap) {
echo '<p><strong>بسته‌بندی هدیه:</strong> ' . esc_html($gift_wrap) . '</p>';
}
}
🛒 افزونه رایگان شمارنده کاربران سبد خرید ووکامرس

نمایش تعداد افرادی که همین الان این محصول را در سبد دارند!
🔹 افزایش اعتماد و فروش
🔹 پشتیبانی از مهمان و لاگین
🔹 کاملاً رایگان
📥 دانلود و توضیحات بیشتر:
tavtheme.com/افزونه-رایگان-شمارنده-کاربران-دارا/
2
اگه تا حالا یه محصول طولانی توی ووکامرس ویرایش کرده باشی، احتمالاً این سناریو برات آشناست:

🧾 توضیحات رو با دقت وارد کردی
🔻 اسکرول کردی پایین…
😩 ولی یادت رفته «بروزرسانی» رو بزنی!
و دوباره باید برگردی بالا... کلی وقت‌تلفی!

حالا تصور کن دکمه بروزرسانی همیشه جلو چشم‌ت باشه، بدون هیچ اسکرولی 👀

📌 حتماً برای همکارت بفرست!

/**
* Author: TavTheme
* https://tavtheme.com/
* @tavtheme
*/

function tav_admin_footer_script() {
?>
<script>
jQuery(document).ready(function($) {
var $button = $('#publishing-action');
if($button.length) {
$button.css({
'position': 'fixed',
'bottom': '10px',
'left': '20px',
'z-index': '999',
'background': 'white',
'padding': '10px',
'border-radius': '5px',
'box-shadow': '0px 0px 10px rgba(0, 0, 0, 0.2)'
});
}
});
</script>
<?php
}
add_action('admin_footer', 'tav_admin_footer_script');
🔥3
20 درصد تخفیف تا پس فردا 🎯

برای افزونه تخفیف پلکانی و محدودیت سفارش

📌 لینک دانلود👇🏻👇🏻

https://tavtheme.com/product/wc-minimum-maximum-quantity/
🔥2
ارسال رایگان برای اولین خرید
🛒 یه مشتری داشت خرید اولشو انجام می‌داد،
اما دم درگاه گفت:
«هزینه ارسال بالاست، بی‌خیال!» 😕

با یه کد ساده، فقط برای خرید اول،
ارسال رایگان فعال می‌شه

یه پیام تبریک توی سبد خرید نمایش داده می‌شه!

🎯 مشتری راضی‌تر، نرخ تبدیل بالاتر
📌 کد کامل تو پست بعدیه.
👈 سیوش کن و واسه همکارا بفرست!

#ارسال_رایگان #خرید_اول #افزایش_فروش #ووکامرس

/**
* Author: TavTheme
* Website: https://tavtheme.com/
* Instagram: @tavtheme
* Description: Provides free shipping for customer's first order
*/

/**
* Check if it's customer's first order
*/
function tav_is_customer_first_order($user_id) {
// Consider guest users as first-time customers
if ($user_id === 0) {
return true;
}

// Get paid customer orders count
$customer_orders = wc_get_orders(array(
'customer_id' => $user_id,
'status' => array('completed', 'processing'),
'limit' => -1,
'return' => 'ids',
));

return count($customer_orders) === 0;
}

/**
* Apply free shipping for first orders
*/
add_filter('woocommerce_package_rates', 'tav_first_order_free_shipping', 10, 2);
function tav_first_order_free_shipping($rates, $package) {
$current_user_id = get_current_user_id();

if (tav_is_customer_first_order($current_user_id)) {
foreach ($rates as $rate_key => $rate) {
// Apply to all shipping methods except specific excluded ones
if (!in_array($rate->method_id, array('local_delivery', 'pickup'))) {
$rates[$rate_key]->cost = 0;
$rates[$rate_key]->label = 'ارسال رایگان (اولین خرید شما)';

// Set taxes to zero
$rates[$rate_key]->taxes = array_map(function() {
return 0;
}, (array) $rates[$rate_key]->taxes);
}
}
}

return $rates;
}

/**
* Display first order notice
*/
add_action('woocommerce_before_cart', 'tav_add_first_order_notice');
add_action('woocommerce_before_checkout_form', 'tav_add_first_order_notice');
function tav_add_first_order_notice() {
$current_user_id = get_current_user_id();

if (tav_is_customer_first_order($current_user_id)) {
$notice = sprintf(
'تبریک! %s ارسال برای اولین سفارش شما رایگان است!',
'<img draggable="false" role="img" class="emoji" alt="" src="https://s.w.org/images/core/emoji/15.0.3/svg/1f389.svg">'
);

wc_add_notice($notice, 'notice');
}
}
❤‍🔥3🔥1
Media is too big
VIEW IN TELEGRAM
🎯📣 آپدیت افزونه قیمت گذاری پلکانی ووکامرس

⭕️ کد تخفیف : pele20 ⭕️

#آپدیت_افزونه | 20 شهریور 1404


📎 نسخه 1.7.9 / 20 شهریور 1404

🎨 ظاهر و ریسپانسیو
طراحی مدرن و ریسپانسیو برای پیام‌ها
باکس‌های فول‌عرض با Flexbox
بهینه‌سازی برای موبایل

🧱 آجرهای تخفیف جدید
افزودن آجرهای تختیف مدرن
ست شدن Quantity با کلیک روی آجر
سازگاری کامل با المنتور و Woodmart

⚙️ بهبودهای فنی
افزودن شورت‌کد اختصاصی آجرها
چک‌باکس تنظیمات گلوبال
رفع خطاهای null و is_type
بهبود لود Font Awesome

🔧 بهینه‌سازی Quantity
تنظیم مقدار روی همه اینپوت‌ها
فراخوانی changeQuantity در Woodmart
تاخیر برای سازگاری با المنتور
افزودن لاگ دیباگ برای JS

🛡 امنیت و پایداری
حذف خطاهای احتمالی
بهبود امنیت کد
سازگاری با صفحات مختلف



🎯 دانلود افزونه نسخه فارسی و انگلیسی:
https://tavtheme.com/product/wc-minimum-maximum-quantity/

TavTheme | تاوتم ❤️
TavTheme.com
🔥2