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

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

۱۰۰ قطعه کد آماده ۴۰۵۴۸ بار استفاده و کپی شده ۱۰۰٪ تست‌شده و ایمن
فضای کار توسعه و مهندسی کد استودیو بیسکو وب
APACHE سرور و هاستینگ (Server) ErrorDocument Directive

کد تنظیم صفحه خطای 404 اختصاصی در وب‌سرور آپاچی (.htaccess)

با دستور ErrorDocument 404 در htaccess می‌توانید آدرس یک صفحه طراحی‌شده یا فایل html اختصاصی را به عنوان صفحه خطای ۴۰۴ سرور ست کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
# تعیین صفحه خطای ۴۰۴ اختصاصی
ErrorDocument 404 /404.html

# یا ارجاع به روت اختصاصی وردپرس:
# ErrorDocument 404 /index.php?error=404
۴۳۷ 1405/06/29
APACHE پیکربندی .htaccess Redirect Directive

کد ریدایرکت ۳۰۱ تکی یک آدرس در فایل htaccess

با یک خط دستور Redirect 301 در .htaccess، آدرس قدیمی را به آدرس جدید منتقل کرده و از خطای ۴۰۴ جلوگیری کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
# ریدایرکت ۳۰۱ تکی آدرس قدیمی به آدرس جدید
Redirect 301 /old-slug-url/ https://example.com/new-slug-url/
۴۳۰ 1405/06/29
PHP ووکامرس (WooCommerce) Action Hook (remove_action)

حذف محصولات مکمل از صفحه سبد خرید ووکامرس (Remove Cart Cross-sells)

با `remove_action('woocommerce_cart_collaterals', 'woocommerce_cross_sell_display');` بخش محصولات مکمل سبد خرید را حذف کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * حذف کامل محصولات فروش مکمل (Cross-sells) از صفحه سبد خرید ووکامرس
 * جهت کاهش نرخ انصراف از خرید (Cart Abandonment)
 */
remove_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display' );
۴۱۹ 1405/06/29
PHP وردپرس (WordPress) Admin Column Helper

نمایش شناسه نوشته (Post ID) در جدول مدیریت وردپرس (Show Post ID)

با هوک‌های `manage_posts_columns` و `manage_pages_columns` یک ستون اختصاصی با عرض ثابت برای Post ID ایجاد کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * نمایش ستون شناسه عددی نوشته‌ها و برگه‌ها در پیشخوان وردپرس
 */
function bisco_add_id_column( $columns ) {
    $columns['bisco_post_id'] = 'شناسه (ID)';
    return $columns;
}
add_filter( 'manage_posts_columns', 'bisco_add_id_column' );
add_filter( 'manage_pages_columns', 'bisco_add_id_column' );

function bisco_render_id_column( $column, $post_id ) {
    if ( 'bisco_post_id' === $column ) {
        echo '<code style="font-family:monospace; background:#f0f0f1; padding:2px 6px; border-radius:4px; font-weight:600;">' . esc_html( $post_id ) . '</code>';
    }
}
add_action( 'manage_posts_custom_column', 'bisco_render_id_column', 10, 2 );
add_action( 'manage_pages_custom_column', 'bisco_render_id_column', 10, 2 );
۴۰۱ 1405/06/29
PHP وردپرس (WordPress) Action Hook (register_taxonomy)

ثبت دسته‌بندی سفارشی در وردپرس (Custom Taxonomy)

با تابع `register_taxonomy` دسته‌بندی مورد نظر را بسازید و آن را به پست‌تایپ اختصاصی متصل کنید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * ثبت تاکسونومی سفارشی برای نمونه‌کارها (دسته‌بندی پروژه‌ها)
 */
function bisco_register_portfolio_taxonomy() {
    $labels = array(
        'name'              => 'دسته‌بندی پروژه‌ها',
        'singular_name'     => 'دسته پروژه',
        'search_items'      => 'جستجوی دسته‌ها',
        'all_items'         => 'همه دسته‌ها',
        'parent_item'       => 'دسته مادر',
        'parent_item_colon' => 'دسته مادر:',
        'edit_item'         => 'ویرایش دسته',
        'update_item'       => 'به‌روزرسانی دسته',
        'add_new_item'      => 'افزودن دسته جدید',
        'new_item_name'     => 'نام دسته جدید',
        'menu_name'         => 'دسته‌ها',
    );

    $args = array(
        'hierarchical'      => true, // به صورت دسته‌بندی والد/فرزند باشد (مانند دسته پست‌ها)
        'labels'            => $labels,
        'show_ui'           => true,
        'show_admin_column' => true, // نمایش ستون دسته در جدول ادمین
        'query_var'         => true,
        'show_in_rest'      => true, // نمایش در پنل سایدبار گوتنبرگ
        'rewrite'           => array( 'slug' => 'project-type' ),
    );

    register_taxonomy( 'project_type', array( 'portfolio' ), $args );
}
add_action( 'init', 'bisco_register_portfolio_taxonomy' );
۳۸۸ 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) 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 (loop_shop_columns)

تغییر تعداد ستون‌های محصولات در فروشگاه ووکامرس (Products Per Row)

با فیلتر `loop_shop_columns` تعداد ستون‌ها را بر روی ۴ یا عدد دلخواه تنظیم کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * تغییر تعداد ستون‌های شبکه محصولات در فروشگاه به ۴ ستون
 */
function bisco_woocommerce_loop_columns() {
    return 4; // تعداد ستون‌ها در هر سطر
}
add_filter( 'loop_shop_columns', 'bisco_woocommerce_loop_columns', 99 );
۳۶۹ 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 وردپرس (WordPress) REST API Controller

ساخت اندپوینت اختصاصی در REST API وردپرس (Custom REST API Endpoint)

با تابع `register_rest_route` در اکشن `rest_api_init` یک اندپوینت GET با اعتبارسنجی ورودی‌ها بسازید.

متوسط (Medium Risk) پیشرفته (Hard)
<?php
/**
 * ایجاد اندپوینت اختصاصی در REST API برای دریافت خلاصه آمار سایت
 * آدرس اندپوینت: /wp-json/bisco/v1/stats
 */
function bisco_register_custom_rest_route() {
    register_rest_route( 'bisco/v1', '/stats', array(
        'methods'             => WP_REST_Server::READABLE, // متد GET
        'callback'            => 'bisco_get_site_stats_callback',
        'permission_callback' => '__return_true', // اجازه دسترسی عمومی
    ) );
}
add_action( 'rest_api_init', 'bisco_register_custom_rest_route' );

function bisco_get_site_stats_callback( WP_REST_Request $request ) {
    $published_posts = wp_count_posts( 'post' )->publish;
    $comments_count  = wp_count_comments()->approved;

    $response = array(
        'status'          => 'success',
        'published_posts' => (int) $published_posts,
        'total_comments'  => (int) $comments_count,
        'timestamp'       => current_time( 'timestamp' ),
    );

    return new WP_REST_Response( $response, 200 );
}
۳۶۴ 1405/06/29

ایجاد اتصال زودهنگام به دامنه‌های خارجی با Preconnect در وردپرس

با قرار دادن کد زیر در functions.php، مرورگر کاربر پیش از رسیدن به اسکریپت اصلی، اتصال امن را با دامنه‌های خارجی کلیدی برقرار می‌سازد.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * برقراری اتصال زودهنگام Preconnect به دامنه‌های خارجی حیاتی
 */
function bisco_resource_hints_preconnect( $urls, $relation_type ) {
    if ( 'preconnect' === $relation_type ) {
        // دامنه CDN استاتیک یا سرور فونت
        $urls[] = array(
            'href' => 'https://cdn.example.com',
            'crossorigin' => 'anonymous',
        );
        $urls[] = array(
            'href' => 'https://fonts.gstatic.com',
            'crossorigin' => 'anonymous',
        );
    }
    return $urls;
}
add_filter( 'wp_resource_hints', 'bisco_resource_hints_preconnect', 10, 2 );
۳۶۰ 1405/06/29

سبد خرید شما

0 افزونه

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

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

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

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

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

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