Danh sách và hướng dẫn sử dụng Filter trong Init User Engine

Plugin Init User Engine cung cấp một hệ thống filter đa dạng, cho phép bạn can thiệp sâu vào luồng dữ liệu người dùng như điểm danh, phần thưởng, VIP, inbox… Tài liệu này sẽ liệt kê đầy đủ các filter hiện có, giải thích chức năng và cách sử dụng với ví dụ thực tế.

Danh sách và hướng dẫn sử dụng Filter trong Init User Engine

1. init_plugin_suite_user_engine_online_minutes

Điều chỉnh số phút người dùng cần online sau khi điểm danh để có thể nhận thưởng.

// Giảm thời gian yêu cầu nếu là admin
add_filter( 'init_plugin_suite_user_engine_online_minutes', function( $minutes, $user_id, $is_vip ) {
    if ( user_can( $user_id, 'manage_options' ) ) {
        return 3;
    }
    return $minutes;
}, 10, 3 );

2. init_plugin_suite_user_engine_vip_prices

Thay đổi giá các gói VIP hiển thị ở frontend.

// Tăng gói VIP Lifetime lên 2 triệu
add_filter( 'init_plugin_suite_user_engine_vip_prices', function( $prices ) {
    $prices['vip_price_6'] = 2000000;
    return $prices;
});

3. init_plugin_suite_user_engine_referral_rewards

Tùy chỉnh phần thưởng referral cho người giới thiệu và người được mời.

// Cho người giới thiệu thêm 200 coin, người được mời thêm 100 exp
add_filter( 'init_plugin_suite_user_engine_referral_rewards', function( $rewards ) {
    $rewards['ref_reward_coin'] = 200;
    $rewards['ref_new_exp']     = 100;
    return $rewards;
});

4. init_plugin_suite_user_engine_localized_data

Thay đổi dữ liệu được gửi đến frontend qua biến InitUserEngineData.

// Thêm tên người dùng vào biến JS
add_filter( 'init_plugin_suite_user_engine_localized_data', function( $data, $user_id ) {
    $user = get_userdata( $user_id );
    $data['username'] = $user->user_login;
    return $data;
}, 10, 2 );

5. init_plugin_suite_user_engine_calculated_coin_amount

Điều chỉnh số coin được cộng trước khi áp dụng.

// Nhân đôi số coin nếu hôm nay là Chủ nhật
add_filter( 'init_plugin_suite_user_engine_calculated_coin_amount', function( $amount, $user_id ) {
    if ( date( 'w' ) == 0 ) {
        return $amount * 2;
    }
    return $amount;
}, 10, 2 );

6. init_plugin_suite_user_engine_calculated_exp_amount

Điều chỉnh số EXP được cộng trước khi áp dụng.

// Giảm EXP cho role "contributor"
add_filter( 'init_plugin_suite_user_engine_calculated_exp_amount', function( $exp, $user_id ) {
    $user = get_userdata( $user_id );
    if ( in_array( 'contributor', $user->roles ) ) {
        return $exp * 0.5;
    }
    return $exp;
}, 10, 2 );

7. init_plugin_suite_user_engine_exp_required

Thay đổi công thức tính EXP cần thiết để lên cấp.

// Mỗi level cần thêm 1000 EXP thay vì 500
add_filter( 'init_plugin_suite_user_engine_exp_required', function( $required, $level ) {
    return 1000 + ( $level - 1 ) * 1000;
}, 10, 2 );

8. init_plugin_suite_user_engine_checkin_milestones

Xác định các mốc streak sẽ được thưởng đặc biệt.

// Thêm mốc thưởng vào ngày 3 và ngày 100
add_filter( 'init_plugin_suite_user_engine_checkin_milestones', function( $milestones ) {
    $milestones[] = 3;
    $milestones[] = 100;
    return $milestones;
});

9. init_plugin_suite_user_engine_format_inbox

Tùy chỉnh dữ liệu một tin nhắn inbox trước khi gửi ra REST API.

// Thêm trường "short_title"
add_filter( 'init_plugin_suite_user_engine_format_inbox', function( $formatted, $raw ) {
    $formatted['short_title'] = wp_trim_words( $raw['title'], 5 );
    return $formatted;
}, 10, 2 );

10. init_plugin_suite_user_engine_render_level_badge

Thay đổi HTML hiển thị badge cấp độ người dùng.

// Thêm icon đằng trước
add_filter( 'init_plugin_suite_user_engine_render_level_badge', function( $html, $level, $rank ) {
    return '<span class="iue-icon-star"></span>' . $html;
}, 10, 3 );

11. init_plugin_suite_user_engine_inbox_insert_data

Can thiệp dữ liệu tin nhắn trước khi ghi vào cơ sở dữ liệu.

// Gắn thêm metadata nếu là loại "event"
add_filter( 'init_plugin_suite_user_engine_inbox_insert_data', function( $data, $user_id ) {
    if ( $data['type'] === 'event' ) {
        $data['metadata'] = maybe_serialize( [ 'from' => 'system' ] );
    }
    return $data;
}, 10, 2 );

12. init_plugin_suite_user_engine_vip_expire_soon_threshold

Điều chỉnh khoảng thời gian (tính bằng giây) để xác định khi nào VIP được xem là “sắp hết hạn”. Mặc định là 1 ngày (DAY_IN_SECONDS).

// Coi VIP là sắp hết hạn khi còn dưới 3 ngày
add_filter(
    'init_plugin_suite_user_engine_vip_expire_soon_threshold',
    function( $seconds, $user_id, $expire ) {
        return 3 * DAY_IN_SECONDS;
    },
    10,
    3
);

Filter này thường dùng để điều chỉnh chiến lược nhắc gia hạn hoặc ưu đãi sớm cho từng website.

13. init_plugin_suite_user_engine_body_vip_classes

Cho phép thêm, sửa hoặc loại bỏ các class liên quan đến VIP được gắn vào thẻ <body>. Hữu ích khi bạn muốn mở rộng logic hiển thị hoặc tích hợp với theme / plugin khác.

// Thêm class tùy chỉnh khi user từng mua VIP
add_filter(
    'init_plugin_suite_user_engine_body_vip_classes',
    function( $classes, $user_id, $expire ) {
        if ( in_array( 'iue-vip-expired', $classes, true ) ) {
            $classes[] = 'iue-vip-ever';
        }
        return $classes;
    },
    10,
    3
);

Filter này đóng vai trò cầu nối giữa logic VIP và tầng hiển thị (HTML/CSS).

Kết luận

Hệ thống filter trong Init User Engine được thiết kế để dễ dàng mở rộng và tuỳ biến theo nhu cầu. Bạn có thể sử dụng chúng để thay đổi logic phần thưởng, cấu hình VIP, định dạng dữ liệu frontend hoặc tùy biến giao diện mà không cần sửa trực tiếp plugin gốc.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...