5 snippet WooCommerce mình paste vào hầu hết dự án khách hàng SME. Cho vào functions.php của child theme.

1. Rút gọn checkout — chỉ giữ tên, SĐT, email, địa chỉ

add_filter('woocommerce_checkout_fields', 'phh_simplify_checkout');
function phh_simplify_checkout($fields) {
    unset($fields['billing']['billing_country']);
    unset($fields['billing']['billing_company']);
    unset($fields['billing']['billing_address_2']);
    unset($fields['billing']['billing_city']);
    unset($fields['billing']['billing_state']);
    unset($fields['billing']['billing_postcode']);
    return $fields;
}

2. Tắt language dropdown ở trang login

add_filter('login_display_language_dropdown', '__return_false');

3. Ẩn marketing menu

add_filter('woocommerce_admin_disabled', '__return_true');
add_filter('woocommerce_marketing_menu_items', '__return_empty_array');

4. Bỏ password strength meter

add_action('wp_print_scripts', function () {
    if (wp_script_is('wc-password-strength-meter', 'enqueued')) {
        wp_dequeue_script('wc-password-strength-meter');
    }
}, 100);

5. Auto-complete đơn ảo (digital products)

add_action('woocommerce_thankyou', 'phh_auto_complete_virtual', 10, 1);
function phh_auto_complete_virtual($order_id) {
    $order = wc_get_order($order_id);
    if (!$order) return;
    foreach ($order->get_items() as $item) {
        $product = $item->get_product();
        if ($product && ($product->is_virtual() || $product->is_downloadable())) {
            $order->update_status('completed');
            return;
        }
    }
}

Tại sao tách vào child theme?

Theme cha (parent) sẽ bị ghi đè khi update. Code đặt vào child theme tồn tại lâu dài. Nếu chưa có child theme, dùng plugin Code Snippets để quản lý các đoạn code này từ admin — không phải vào file system.