کتابخانه کد و توابع اختصاصی بیسکو وب

توابع تمیز، هوک‌های کارآمد و اسنیپت‌های تست‌شده برای وردپرس، ووکامرس، لاراول و وب مدرن جهت حذف افزونه‌های سنگین، بهبود نمره رندر و سرعت، با امکان کپی فوری و دانلود به عنوان افزونه آماده.

۱۰۰ قطعه کد آماده ۴۰۵۴۸ بار استفاده و کپی شده ۱۰۰٪ تست‌شده و ایمن
فضای کار توسعه و مهندسی کد استودیو بیسکو وب
PHP ووکامرس (WooCommerce) CRUD & HPOS API

دریافت اطلاعات سفارش سازگار با دیتابیس HPOS ووکامرس (High-Performance Order Storage)

با متد `Automattic\\WooCommerce\\Utilities\\OrderUtil::custom_orders_table_usage_is_enabled()` سازگاری را بررسی کرده و داده‌ها را با شیء `$order->get_...()` به جای `get_post_meta` مدیریت نمایید.

حساس و پرخطر (High Risk) پیشرفته (Hard)
<?php
use Automattic\WooCommerce\Utilities\OrderUtil;

/**
 * اعلام رسمی سازگاری قالب/پلاگین با معماری HPOS ووکامرس
 */
add_action( 'before_woocommerce_init', function() {
    if ( class_exists( '\Automattic\WooCommerce\Utilities\FeaturesUtil' ) ) {
        \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
    }
} );

/**
 * دریافت و پردازش اطلاعات سفارش با متدهای CRUD کاملاً سازگار با HPOS
 */
function bisco_process_hpos_compatible_order( $order_id ) {
    // واکشی امن شیء سفارش بدون در نظر گرفتن محل فیزیکی ذخیره در دیتابیس
    $order = wc_get_order( $order_id );
    if ( ! $order ) {
        return;
    }

    // بررسی اینکه آیا سیستم در حالت HPOS اختصاصی کار می‌کند
    $is_hpos_active = OrderUtil::custom_orders_table_usage_is_enabled();

    // روش استاندارد خواندن اطلاعات اصلی سفارش
    $customer_id    = $order->get_customer_id();
    $order_total    = $order->get_total();
    $billing_email  = $order->get_billing_email();
    $billing_phone  = $order->get_billing_phone();
    $payment_method = $order->get_payment_method_title();

    // روش استاندارد ذخیره و خواندن متای اختصاصی (بدون get_post_meta)
    $tracking_code = $order->get_meta( '_bisco_post_tracking_code', true );

    // به‌روزرسانی متای سفارش با متد CRUD
    $order->update_meta_data( '_bisco_processed_at', current_time( 'mysql' ) );
    $order->save(); // ذخیره خودکار در جدول صحیح (چه wp_posts باشد چه wp_wc_orders)
}

/**
 * واکشی سفارش‌های در حال پردازش با wc_get_orders به جای WP_Query سنتی
 */
function bisco_get_recent_processing_orders() {
    $args = array(
        'status'  => array( 'wc-processing' ),
        'limit'   => 10,
        'orderby' => 'date',
        'order'   => 'DESC',
        'return'  => 'ids',
    );

    // این تابع به صورت هوشمند از جداول سریع HPOS کوئری می‌زند
    $order_ids = wc_get_orders( $args );

    return $order_ids;
}
۶۳۹ 1405/06/29
PHP ووکامرس (WooCommerce) Filter Hook (woocommerce_quantity_input_step)

تنظیم گام شمارش و ضریب تعداد خرید در ووکامرس (Product Quantity Step)

با فیلتر `woocommerce_quantity_input_step` گام افزایش/کاهش تعداد محصول را روی ضریب دلخواه (مثلاً ۵ یا ۶) تنظیم نمایید.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * تنظیم گام افزایش و ضریب شمارش تعداد محصول (مثلاً مضرب‌های ۵تایی: ۵، ۱۰، ۱۵، ۲۰)
 */
function bisco_set_quantity_step( $step, $product ) {
    return 5; // هر کلیک ۵ عدد اضافه کند
}
add_filter( 'woocommerce_quantity_input_step', 'bisco_set_quantity_step', 10, 2 );
۳۴۶ 1405/06/29
PHP ووکامرس (WooCommerce) Filter Hook (woocommerce_quantity_input_max)

تعیین حداکثر تعداد خرید مجاز محصول در ووکامرس (Maximum Product Quantity)

با فیلتر `woocommerce_quantity_input_max` حداکثر سفارش مجاز (مثلاً حداکثر ۲ عدد در هر سفارش) را قفل کنید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * محدودسازی حداکثر تعداد سفارش هر محصول در سبد خرید به ۲ عدد
 */
function bisco_set_maximum_product_quantity( $max, $product ) {
    // سقف خرید برای هر فاکتور ۲ عدد
    return 2;
}
add_filter( 'woocommerce_quantity_input_max', 'bisco_set_maximum_product_quantity', 10, 2 );
۳۲۶ 1405/06/29
PHP ووکامرس (WooCommerce) Filter Hook (woocommerce_quantity_input_min)

تعیین حداقل تعداد خرید محصول در ووکامرس (Minimum Product Quantity)

با فیلتر `woocommerce_quantity_input_min` کف سفارش را بر روی عدد دلخواه (مثلاً ۵ عدد) تنظیم کنید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * تعیین حداقل تعداد قابل خرید برای محصولات در ووکامرس
 */
function bisco_set_minimum_product_quantity( $min, $product ) {
    // حداقل سفارش برای تمام محصولات (یا یک دسته خاص) ۳ عدد باشد
    return 3;
}
add_filter( 'woocommerce_quantity_input_min', 'bisco_set_minimum_product_quantity', 10, 2 );

// تنظیم مقدار پیش‌فرض فیلد تعداد روی حداقل سفارش
function bisco_set_default_input_quantity( $args, $product ) {
    $args['input_value'] = 3;
    return $args;
}
add_filter( 'woocommerce_quantity_input_args', 'bisco_set_default_input_quantity', 10, 2 );
۵۴۰ 1405/06/29
PHP ووکامرس (WooCommerce) Posts Clauses Filter

انتقال خودکار محصولات ناموجود به انتهای لیست در ووکامرس (Sort Out-of-Stock Products Last)

با فیلتر `posts_clauses` در کوئری اصلی ووکامرس، شرط مرتب‌سازی را طوری تغییر دهید که اقلام دارای موجودی اول و ناموجودها در آخر قرار گیرند.

متوسط (Medium Risk) پیشرفته (Hard)
<?php
/**
 * انتقال خودکار محصولات ناموجود به انتهای لیست در کاتالوگ فروشگاه و دسته‌بندی‌ها
 */
function bisco_sort_out_of_stock_products_last( $posts_clauses, $query ) {
    // تنها در فرانت‌اند و در کوئری اصلی آرشیو فروشگاه اعمال شود
    if ( ! is_admin() && $query->is_main_query() && ( is_shop() || is_product_taxonomy() ) ) {
        global $wpdb;

        $posts_clauses['join'] .= " LEFT JOIN {$wpdb->postmeta} AS bisco_stock ON ({$wpdb->posts}.ID = bisco_stock.post_id AND bisco_stock.meta_key = '_stock_status') ";
        $posts_clauses['orderby'] = " CASE WHEN bisco_stock.meta_value = 'outofstock' THEN 1 ELSE 0 END ASC, " . $posts_clauses['orderby'];
    }

    return $posts_clauses;
}
add_filter( 'posts_clauses', 'bisco_sort_out_of_stock_products_last', 2000, 2 );
۳۸۲ 1405/06/29
PHP ووکامرس (WooCommerce) Filter Hook (woocommerce_sale_flash)

شخصی‌سازی بج تخفیف یا حراج در ووکامرس (Customize Sale Badge)

با فیلتر `woocommerce_sale_flash` درصد اختلاف قیمت عادی و حراج را محاسبه کرده و در بج چاپ کنید.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * نمایش درصد واقعی تخفیف به صورت پویا درون بج حراج محصولات ووکامرس
 */
function bisco_custom_sale_percentage_badge( $html, $post, $product ) {
    if ( ! $product->is_on_sale() ) {
        return $html;
    }

    $regular_price = (float) $product->get_regular_price();
    $sale_price    = (float) $product->get_sale_price();

    if ( $regular_price > 0 && $sale_price > 0 ) {
        $percentage = round( ( ( $regular_price - $sale_price ) / $regular_price ) * 100 );
        return '<span class="onsale bisco-sale-badge">' . esc_html( $percentage ) . '٪ تخفیف</span>';
    }

    return '<span class="onsale">حراج ویژه</span>';
}
add_filter( 'woocommerce_sale_flash', 'bisco_custom_sale_percentage_badge', 20, 3 );
۲۵۶ 1405/06/29
PHP ووکامرس (WooCommerce) Filter Hook (woocommerce_get_availability)

تغییر متن ناموجود بودن کالا در ووکامرس (Change Out of Stock Text)

با فیلتر `woocommerce_get_availability` متن وضعیت موجودی در زمان ناموجود بودن کالا را بازنویسی کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * شخصی‌سازی متن وضعیت اتمام موجودی انبار در صفحه محصولات ووکامرس
 */
function bisco_custom_out_of_stock_text( $availability, $product ) {
    if ( ! $product->is_in_stock() ) {
        $availability['availability'] = 'این کالا موقتاً به پایان رسیده و به زودی شارژ خواهد شد.';
    }
    return $availability;
}
add_filter( 'woocommerce_get_availability', 'bisco_custom_out_of_stock_text', 10, 2 );
۳۶۷ 1405/06/29
PHP ووکامرس (WooCommerce) Filter Hook (wc_product_sku_enabled)

مخفی کردن شناسه محصول یا کد کالا در ووکامرس (Hide SKU)

با بازگرداندن `__return_false` به فیلتر `wc_product_sku_enabled`، نمایش SKU را در فرانت‌اند خاموش کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * غیرفعال‌سازی و مخفی کردن نمایش شناسه کالا (SKU) در صفحات محصول ووکامرس
 */
add_filter( 'wc_product_sku_enabled', '__return_false' );
۶۰۳ 1405/06/29
PHP ووکامرس (WooCommerce) Filter Hook & Callback

افزودن تب سفارشی به صفحه محصول در ووکامرس (Add Custom Product Tab)

با فیلتر `woocommerce_product_tabs` یک کلید جدید با عنوان و متد کال‌بک بسازید و محتوای دلخواه را درون آن اکو کنید.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * افزودن زبانه سفارشی «شرایط ارسال و گارانتی» به صفحه محصول ووکامرس
 */
function bisco_add_custom_product_tab( $tabs ) {
    $tabs['bisco_warranty_tab'] = array(
        'title'    => 'گارانتی و شرایط ارسال',
        'priority' => 50,
        'callback' => 'bisco_render_warranty_tab_content',
    );
    return $tabs;
}
add_filter( 'woocommerce_product_tabs', 'bisco_add_custom_product_tab' );

// محتوای نمایش داده شده درون زبانه سفارشی
function bisco_render_warranty_tab_content() {
    echo '<h3>ضمانت اصالت و بازگشت وجه بیسکووب</h3>';
    echo '<p>کلیه محصولات ارائه شده دارای ضمانت اصالت ۱۰۰٪، ۷ روز مهلت تست فنی و بازگشت وجه، و پشتیبانی تخصصی آنلاین هستند.</p>';
    echo '<ul>';
    echo '<li>ارسال اکسپرس ظرف ۲۴ الی ۴۸ ساعت کاری</li>';
    echo '<li>بسته‌بندی ایمن و مقاوم در برابر ضربه</li>';
    echo '<li>امکان پیگیری لحظه‌ای مرسوله با کد رهگیری پستی</li>';
    echo '</ul>';
}
۳۸۴ 1405/06/29
PHP ووکامرس (WooCommerce) Filter Hook (woocommerce_product_tabs)

حذف تب اطلاعات بیشتر (مشخصات فنی) در ووکامرس (Remove Additional Information Tab)

با دستور `unset($tabs['additional_information']);` در فیلتر `woocommerce_product_tabs` تب اطلاعات بیشتر را کاملاً بردارید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * حذف کامل زبانه اطلاعات بیشتر (Additional Information) در ووکامرس
 */
function bisco_remove_additional_information_tab( $tabs ) {
    unset( $tabs['additional_information'] );
    return $tabs;
}
add_filter( 'woocommerce_product_tabs', 'bisco_remove_additional_information_tab', 98 );
۶۷۹ 1405/06/29
PHP ووکامرس (WooCommerce) Filter Hook (woocommerce_product_tabs)

تغییر نام تب توضیحات در ووکامرس (Rename Description Tab)

با فیلتر `woocommerce_product_tabs` مقدار `$tabs['description']['title']` را به نام جدید تغییر دهید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * تغییر نام زبانه پیش‌فرض «توضیحات» در صفحه محصول ووکامرس
 */
function bisco_rename_description_tab( $tabs ) {
    if ( isset( $tabs['description'] ) ) {
        $tabs['description']['title'] = 'نقد و بررسی تخصصی';
    }
    return $tabs;
}
add_filter( 'woocommerce_product_tabs', 'bisco_rename_description_tab', 98 );
۴۹۳ 1405/06/29
PHP ووکامرس (WooCommerce) Filter Hook (woocommerce_product_tabs)

تغییر ترتیب تب‌های صفحه محصول در ووکامرس (Reorder Product Tabs)

با فیلتر `woocommerce_product_tabs`، کلید `'priority'` هر تب را بر اساس ترتیب دلخواه خود بازنویسی کنید.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * تغییر ترتیب قرارگیری زبانه‌های صفحه محصول ووکامرس
 */
function bisco_reorder_product_tabs( $tabs ) {
    // تب نظرات کاربران در جایگاه اول قرار گیرد
    if ( isset( $tabs['reviews'] ) ) {
        $tabs['reviews']['priority'] = 10;
    }

    // تب توضیحات تکمیلی در جایگاه دوم
    if ( isset( $tabs['description'] ) ) {
        $tabs['description']['priority'] = 20;
    }

    // تب اطلاعات بیشتر (مشخصات فنی) در جایگاه سوم
    if ( isset( $tabs['additional_information'] ) ) {
        $tabs['additional_information']['priority'] = 30;
    }

    return $tabs;
}
add_filter( 'woocommerce_product_tabs', 'bisco_reorder_product_tabs', 98 );
۶۴۳ 1405/06/29

سبد خرید شما

0 افزونه

سبد خرید شما خالی است

هنوز محصولی را به سبد خرید اضافه نکرده‌اید. می‌توانید از افزونه‌های اختصاصی ما دیدن فرمایید.

مشاهده فروشگاه افزونه‌ها

ثبت درخواست مشاوره

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

مشاور
پشتیبانی و مشاوره تخصصی
پاسخگویی سریع کارشناسان
09903336117