به طور کلی محصولات ووکامرس برای همه کاربران در سراسر دنیا، قابل نمایش خواهد بود. گاهی اوقات ممکن است محصولاتی در فروشگاه وجود داشته باشند که فقط برای یک کشور یا یک مکان خاص ارائه میشوند. ما در این مقاله به شما نحوه مخفی کردن محصولات ووکامرس براساس IP و مکان جغرافیایی را آموزش میدهیم.
بخش اوّل: مخفیکردن محصولات براساس مکان جغرافیایی
اگر میخواهید یک محصول ووکامرس را براساس مکان جغرافیایی (Geolocate IP) کاربران مخفی کرده و دسترسی آن را محدود کنید، از قطعه کد زیر استفاده کنید. در شرط موجود در تابع تعریف شده، متغیر country$ و product_id$ را براساس کشور و محصول مورد نظر سفارشیسازی کنید.
نکته: بهتر است کدها در پوسته فرزند قرار بگیرند. چون با بهروزرسانی پوسته مادر، ممکن است تغییرات به حالت قبل برگردد.
add_filter( 'woocommerce_product_is_visible', 'tidaweb_hide_product_if_country', 9999, 2 );
function tidaweb_hide_product_if_country( $visible, $product_id ){
$location = WC_Geolocation::geolocate_ip();
$country = $location['country'];
if ( $country === "IT" && $product_id === 344 ) {
$visible = false;
}
return $visible;
}
بخش دوّم: مخفی کردن محصولات براساس آدرس IP
اگر میخواهید همه محصولات ووکامرس براساس IP مخفی شده و هیچ کاربری به آن دسترسی نداشته باشد، از قطعه کد زیر استفاده کنید. در شرط موجود در تابع تعریف شده، متغیر country$ را براساس کشور و آرایه hide_products$ را براساس محصولات مورد نظر سفارشیسازی کنید.
add_action( 'woocommerce_product_query', 'tidaweb_hide_product_if_country_new', 9999, 2 );
function tidaweb_hide_product_if_country_new( $q, $query ) {
if ( is_admin() ) return;
$location = WC_Geolocation::geolocate_ip();
$hide_products = array( 21, 32 );
$country = $location['country'];
if ( $country === "US" ) {
$q->set( 'post__not_in', $hide_products );
}
}
در صورتی که سؤالی دارید، میتوانید آن را از بخش دیدگاهها با ما در میان بگذارید. همچنین اگر دنبال توابع کاربردی و ترفندهای وردپرس میگردید، ترفند وردپرس را مشاهده کنید.
منبع: Business Bloomer
سلام ممنون از آموزش خوبتون .
چطور محدودیت تعداد خرید برای یک کاربر قرار بدیم . مثلا کاربر فقط ۳ محصول بتونه بخره ودیگه اجازه خرید داشته نباشه .
باسلام دوست عزیز
برای پاسخ این سوال با ما تماس بگیرید تا کارشناسان راهنمایی کنند.
موفق و پیروز باشید
سلام. میخوام بعضی محصولاتم رو برای استانهای محروم ایران، با تخفیفهای بالاتری نشون بدم، بدون اینکه محصول جدیدی در سایت ثبت کنم.
سلام احسان عزیز
روزت بخیر. کدهای بالا به شما در این زمینه نمیتونه کمک کنه، ولی مقاله زیر فکر میکنم بتونه بهتون کمک کنه.
https://www.greengeeks.com/tutorials/prices-woocommerce-according-country/