مخفی کردن قیمت محصولات ناموجود در ووکامرس

مخفی کردن قیمت محصولات با استفاده از فیلتر های ووکامرس
با کمک فیلتر های ووکامرس می توانیم قیمت محصولات به اتمام رسیده، چه در لیست محصولات و چه در صفحه ی خود محصول، به نمایش در نیاید.
برای این کار کافی است کد زیر را به فایل functions.php قالب وردپرس خود و یا افزونه ای طراحی شده مخصوص سایتتان اضافه کنید.
if ( ! $product->is_in_stock() ) {
$price = ”;
}
return $price;
}
add_filter( ‘woocommerce_variable_sale_price_html’, ‘mechwp_remove_outofstock_prices’, 10, 2 );
add_filter( ‘woocommerce_variable_price_html’, ‘mechwp_remove_outofstock_prices’, 10, 2 );
add_filter( ‘woocommerce_get_price_html’, ‘mechwp_remove_outofstock_prices’, 10, 2 );
پس از اضافه کردن کد بالا به سایتتان، خواهید دید که دیگر اثری از قیمت محصولات ناموجود در سایت دیده نمی شود.
مخفی کردن قیمت محصولات در ووکامرس با استفاده از استایل CSS
در این روش از استایل های CSS برای مخفی کردن قیمت و تعداد محصولات ناموجود در سایت کمک گرفته ایم.
برای استفاده از این روش کافی است که دو خط کد زیر را به فایل استایل سایتتان در محل دلخواه اضافه کرده و یا در بین کدهای استایل سفارشی قالبتان قرار دهید.
.outofstock .price{display:none}
.outofstock .amount{display:none}
این روش هرچند به درستی کار کرده و قیمت محصولات ناموجود را در سایت شما مخفی می کند اما یک نقطه ضعف دارد که در واقع قیمت محصول هنوز در کد سایت شما موجود است و هر شخصی با نگاه به سورس سایت شما می تواند قیمت را مشاهده کند.
کد های بالا صرفا باعث می شوند که هرچند قیمت در سورس سایت موجود است، ولی در حالت گرافیکی سایت به کاربران نشان داده نشود.
مخفی کردن قیمت محصولات در ووکامرس با سفارشی سازی تمپلیت های ووکامرس
این روش قیمت محصول را در لیست محصولات مخفی نخواهد کرد اما به شما اجازه میدهد که در صفحه ی تکی محصولات ناموجود، پیغام دلخواه خود را بجای قیمت محصول به مشتریان خود نشان دهید. بنابراین ترکیب این روش با روش اول به نظر منطقی میرسد و می تواند شما را به نتایج ایده آلی برساند.
برای استفاده از این روش باید ابتدا در فولدر قالب خود به زیر فولدر woocommerce مراجعه کرده و سپس به زیر فولدر single-product بروید. یعنی مسیر زیر
yourtheme/woocommerce/single-product.
در مسیر بالا، منظور از yourtheme نام قالب وردپرس شماست.
اگر در قالبتان این مسیر را پیدا نکردید، نگران نباشید. (مثلا هرچند امکان استفاده از ووکامرس در قالب Twenty Seventeen وجود دارد ولی این قالب فاقد مسیر بالاست) در چنین حالتی کافی است که خودتان این مسیر را در قالبتان ایجاد کنید. پس از مراجعه به این مسیر یک فایل با نام price.php در این آدرس ساخته و کد زیر را در آن قرار دهید (دقت کنید که اینکودینگ فایل utf-8 باشد در غیر این صورت امکان استفاده از زبان فارسی در آن میسر نخواهد بود).
if ( ! defined( ‘ABSPATH’ ) ) exit; // Exit if accessed directly
global $post, $product;
?>
<div itemprop=”offers” itemscope itemtype=”http://schema.org/Offer”>
<p class=”price”> <?php
$stockamount = $product->get_stock_quantity();
$price = $product->get_price_html();
$pricelabel = “تماس بگیرید”;
if($stockamount == )
{
echo $pricelabel;
}
else
{
echo $price;
};
?>
<meta itemprop=”price” content=”<?php echo $product->get_price(); ?>” />
<meta itemprop=”priceCurrency” content=”<?php echo get_woocommerce_currency(); ?>” />
<link itemprop=”availability” href=”http://schema.org/<?php echo $product->is_in_stock() ? ‘InStock’ : ‘OutOfStock’; ?>” />
</div>
تغییرات را در فایل ذکر شده ذخیره کنید. حالا اگر به صفحه ی محصولی که موجود نیست مراجعه کنید (یعنی خود محصول را باز کنید) خواهید دید که بجای قیمت محصول، عبارت “تماس بگیرید” به نمایش گذاشته شده است. شما می توانید این پیام را به دلخواه خود سفارشی سازی کنید. برای این کار کافی است که در خط ۱۱ کد بالا، بجای عبارت تماس بگیرید، عبارت دلخواه خود را قرار دهید.
مطالب مرتبط:
استفاده از فونت آیکون در وردپرس
افزونه customize snapshots افزونه ایجاد تغییر در ظاهر سایت وردپرس
ریست کردن پسورد وردپرس در لوکال هاست
درباره Mostafa Shoa
مدیر تیم پارس نویس، کارشناس مهندسی نرم افزار، مدرس دوره های برنامه نویسی و طراحی سایت در مدارس تیزهوشان، مشاور تبلیغات و بازاریابی استارتاپ ها و کسب و کارهای اینترنتی
نوشته های بیشتر از Mostafa Shoa
دیدگاهتان را بنویسید