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

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

۱۰۰ قطعه کد آماده ۴۰۵۵۲ بار استفاده و کپی شده ۱۰۰٪ تست‌شده و ایمن
فضای کار توسعه و مهندسی کد استودیو بیسکو وب
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

فعال‌سازی اعلان‌های وب‌اپلیکیشن

از آخرین تخفیف‌های شگفت‌انگیز، وضعیت سفارشات و به‌روزرسانی‌های اختصاصی روی گوشی خود باخبر شوید.