تنظیم محصول متغیر پیشفرض پس از موجودی
اگر در وبسایت ووکامرسی خود یک ویژگی پیشفرض را به عنوان محصول پیشفرض انتخاب کنید بعد از اتمام موجودی آن کاربر در صفحه محصول کلمهی ناموجود را میبیند و بهتر است که محصول پیشفرض دیگری را به عنوان ویژگی متغیر آن تنظیم کرد. در این نوشته به تغییر یک محصول موجود پیشفرض بعد از اتمام موجودی پیشفرض آن خواهیم پرداخت.
تنظیم محصول متغیر پیشفرض پس از موجودی
برای اینکه یک متغیر پیشفرض را جایگزین متغیر پیشفرض فعلی در صفحه محصول کنید که بعد از اتمام موجودی یک متغیر پیشفرض موجود در آن به عنوان متغیر پیشفرض است از قطعه کد زیر در فایل functions.php قالب فعال فعلی خود استفاده کنید:
add_action('template_redirect', 'set_default_variation_on_load', 10);
function set_default_variation_on_load() {
if (!is_product()) {
return;
}
global $post;
$product = wc_get_product($post->ID);
if ($product && $product->is_type('variable')) {
$default_attributes = $product->get_default_attributes();
$available_variations = $product->get_available_variations();
$new_default_attributes = $default_attributes;
$is_change = false;
foreach ($available_variations as $variation) {
if ($variation['is_in_stock']) {
$variation_attributes = $variation['attributes'];
foreach ($default_attributes as $attribute_name => $default_value) {
$attribute_key = 'attribute_' . $attribute_name;
if (isset($variation_attributes[$attribute_key]) && $variation_attributes[$attribute_key] !== '') {
$new_default_attributes[$attribute_name] = $variation_attributes[$attribute_key];
} else {
break;
}
}
}
}
foreach ($new_default_attributes as $attribute_name => $new_value) {
if (!isset($default_attributes[$attribute_name]) || $default_attributes[$attribute_name] !== $new_value) {
$is_change = true;
break;
}
}
if ($is_change) {
update_post_meta($product->get_id(), '_default_attributes', $new_default_attributes);
wc()->session->set('default_attributes', $new_default_attributes);
}
}
}
اگر سوال دیگری در ارتباط با وردپرس و ووکامرس دارید در بخش نظرات همین نوشته برای ما بنویسید.
برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]



















آیا این کد با محصولات دارای ویژگیهای زیاد هم درست کار می کنه؟
بله تفاوتی ندارد.
این کد باعث کندی سرعت لود صفحه محصول نمیشه؟
خیر بعد از اجرا هیچ تاثیری روی سایت ایجاد نمیکند.
میشه این تغییر رو فقط برای بعضی محصولات فعال کرد؟
بله باید کوئری را کمی تغییر دهید.
میشه کاری کرد که همیشه موجودترین متغیر به عنوان پیشفرض انتخاب بشه؟
بله ولی باید برای آن کوئری مناسب آن را بنویسید در نوشتههای آینده این آموزش را برای شما ایجاد میکنیم.
این تغییر روی محصولات ساده هم تاثیری میذاره؟
بله تاثیر میگذارد.