Bài viết này ItsmeIT sẽ chỉ ra nguyên nhân và hướng dẫn khắc phục, sửa lỗi thanh toán, đặt hàng chậm trên Wordpress (WooCommerce). Fix lỗi khi người dùng nhấn vào nút đặt hàng, trang thanh toán sẽ tải chậm trong khoảng thời gian 4-5 giây trước khi thông báo đặt hàng thành công xuất hiện.

Nguyên nhân và cách fix lỗi thanh toán, đặt hàng chậm trên Wordpress
Có rất nhiều nguyên nhân dẫn đến chức năng đặt hàng, thanh toán trên trang web của bạn load chậm. Chính trang web của mình (itsmeit.co) đã từng gặp phải vấn đề này và trong hướng dẫn này mình sẽ chia sẻ lại cho bạn.
Trước tiên, bạn cần chắc chắn rằng trang web của bạn đã thiết lập gửi email thành công, tài nguyên máy chủ (VPS/Hosting) còn đủ dung lượng như bộ nhớ, RAM, CPU… để nó hoạt động bình thường.
Các plugin hoặc chủ đề gây ra xung đột: Nếu có plugin hoặc chủ đề trong trang web của bạn gây ra xung đột với WooCommerce, điều này có thể làm giảm tốc độ gửi email và cụ thể là gây ra lỗi đặt hàng chậm trên Wordpress.
Nếu trang web của bạn thỏa mãn 2 điều kiện bên trên thì nguyên nhân thường do chức năng gửi email SMTP của hệ thống “Email Cron” không hoạt động đúng cách. WooCommerce sử dụng hệ thống Email Cron
để quản lý và lên lịch việc gửi email. Nếu hệ thống này không hoạt động đúng cách, các email có thể bị gửi chậm hoặc không được gửi đi.

Hiểu đơn giản hơn về lỗi đặt hàng chậm trên Wordpress có nghĩa là khi người dùng bấm vào nút đặt hàng, thì WooCommerce sẽ gửi yêu cầu Ajax
đến trang web của bạn và thực hiện gửi Email trước khi hiển thị thông báo đặt hàng thành công. Vì vậy bạn có thể trì hoãn việc gửi Email, và gửi email sau khi trang thanh toán thành công được hiển thị.
Có 2 cách để xử lý vấn đề khi đặt hàng wordpress thanh toán chậm. Để làm điều này bạn sẽ cần thêm một đoạn mã vào trong functions.php hoặc sửa dụng plugin Code Snippets Hãy làm theo ItsmeIT như sau:
Cách 1: Trì hoãn gửi Email, tăng tốc thanh toán WooCommerce (Khuyến nghị)
Đăng nhâp vào trang admin, điều hướng đến Plugin->Add new sau đó tìm plugin Code Snippets cài đặt và kích hoạt.

Khi plugin Code Snippets được kích hoạt, từ Menu “Snippets” hãy chọn “Add new” và thêm mã bên dưới, cuối cùng lưu lại file và kiểm tra. Bây giờ khách hàng của bạn đã có thể thanh toán một cách nhanh chóng.
/** Fix checkout Email Cron (Slow page checkout after click button) */ add_filter( 'woocommerce_defer_transactional_emails','__return_true' );
Cách 2: Triển khai Email không đồng bộ để xử lý lỗi wordpress thanh toán chậm
Với phương pháp này bạn có thể sử dụng mu-plugins (Must-Use Plugins) là một tính năng trong hệ thống quản lý plugin của WordPress cho phép các plugin được kích hoạt tự động trên toàn bộ website mà không cần bất kỳ sự can thiệp nào từ phía người dùng. ItsmeIT sẽ dùng cách để ghi đè chức năng “cron_email” để sửa lỗi đặt hàng chậm trên Wordpress.
Để sử dụng mu-plugins, bạn cần thực hiện các bước sau:
Bước 1. Tạo một thư mục mới với tên “mu-plugins” trong thư mục “wp-content” của trang web WordPress.
- Tạo một file trong thư mục “mu-plugins” với tên bất kỳ tùy bạn ví dụ như “EmailSendAsyn.php“. và thêm vào nội dung sau:
<?php /** * Plugin Name: Email Send Asynchronously * Plugin URI: https://itsmeit.co/ * Description: Speed up and optimize WooCommerce checkout page * Author: itsmeit.co * Author URI: https://itsmeit.co/ */ if ( ! defined( 'DOING_CRON' ) || ( defined( 'DOING_CRON' ) && ! DOING_CRON ) ) { function wp_mail() { $args = func_get_args(); $args[] = mt_rand(); wp_schedule_single_event( time() + 5, 'cron_send_mail_async', $args ); } } function email_send_asynchronously() { $args = func_get_args(); array_pop( $args ); call_user_func_array( 'wp_mail', $args ); } add_action( 'cron_send_mail_async', 'email_send_asynchronously', 10, 10 );
Bước 2. Để kiểm tra xem class “EmailSendAsyn.php” đã được kích hoạt hay chưa, bạn có thể truy cập vào trang “Plugin” trong giao diện quản trị WordPress và tìm kiếm các plugin trong danh sách.
Bước 3. Kiểm tra lại việc đặt hàng, bạn sẽ thấy trang wordpress của bạn không còn chậm khi bấm nút thanh toán mà sẽ ngay lập tức hiển thị thông báo thành công, và email cũng sẽ được gửi ngay sau đó.
Bước 4. Nếu có bất kỳ vấn đề lỗi sảy ra bạn chỉ cần xóa class “EmailSendAsyn.php” đi là được.
Đó là một số cách ItsmeIT đã chia sẻ để khắc phục, sửa lỗi đặt hàng chậm trên Wordpress hoặc bạn muốn tăng tốc trang thanh toán trên Wordpress khi sử dụng Plugin WooCommerce. Nếu bạn cần hỗ trợ, có thể để lại comment hoặc gửi liên hệ cho admin nhé.
– Advertising –