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.
