WooCommerce 結帳不起作用:如何解決

已發表: 2020-12-26

您的結帳頁面有問題嗎? 您的 WooCommerce 結帳是否無法正常工作? 我們已經為您服務了。 在本指南中,您將了解如何解決結帳頁面上最常見的問題,以便您可以立即啟動並運行您的商店

每個店主都知道結賬是 WooCommerce 商店最重要的頁面,因為這是您完成銷售的步驟。 但是,它也是購物車放棄率最高的頁面之一。 研究表明,大多數購物者在結賬時會因為額外的費用而放棄,因為它太長或太複雜,或者網站看起來不值得信賴。

我們已經了解瞭如何在 WooCommerce 中自定義結帳和結帳優化的不同策略。 優化結賬可以幫助您提高轉化率並提高銷售額,這已不是什麼秘密。 花時間打磨它會對您的在線商店產生很大的影響。

然而,說起來容易做起來難。 事情可能會出錯並在結帳頁面上產生問題,從而嚴重影響您的業務。 因此,在本指南中,我們將教您不同的方法來解決可能的原因並在您的 WooCommerce 結帳無法正常工作時解決問題

WooCommerce 結帳不起作用? 如何解決常見問題

許多事情都可能導致結帳無法正常工作。 在本節中,我們將了解最常見問題的解決方案,以幫助您盡快啟動並運行您的商店。

1.停用插件和主題

導致結帳在 WooCommerce 中停止工作的最常見問題是創建衝突的主題或插件。 最有效的解決方案是停用所有插件,看看是哪個插件導致了問題。

您可以通過轉到結帳處、右鍵單擊頁面上的任意位置並轉到Inspect > Console來檢查。 如果您看到 Javascript 錯誤,那麼您的某些插件或主題會導致問題。 要檢查哪個插件或主題正在創建衝突,您有兩種選擇:

  1. 批量停用插件
  2. 使用健康檢查插件

注意:在開始之前,我們建議您對網站進行完整備份,以防出現問題。 即使停用和重新激活插件不會導致任何問題,但如果確實如此,備份將為您省去一個大麻煩。

使用這兩個選項,想法是暫時禁用所有插件(WooCommerce 除外)並為您的用戶會話激活默認主題。 這樣,您可以一一激活插件並檢查導致衝突的插件。 如果您使用健康檢查,請確保您從/wp-admin/index.php?page=health-check&tab=troubleshoot進入故障排除模式。 另外,請記住,此工具需要默認主題(如二十一或店面)才能正常工作。

2. WooCommerce 結帳頁面無限加載

導致 WooCommerce 結帳停止工作的另一個常見問題是無休止的加載。 在大多數情況下,AJAX 會導致問題。 Review Order 頁面通過 AJAX 加載付款方式或總計,這將顯示一個加載微調器。

但是,如果出現問題,該部分可能無法加載,或者微調器可能會保留而未加載頁面。 如果是這種情況,請先查看WooCommerce > 系統狀態並檢查錯誤。

以下是一些最常見問題的解決方案:

由 WordPress 設置引起的 AJAX 錯誤

導致 WooCommerce 結帳停止工作的一個常見問題是 WordPress 地址 (URL) 和站點地址 (URL) 不匹配。 AJAX 請求僅適用於同一個域,因此這兩個 URL 必須匹配。

要檢查這是否會導致您的問題,請在您的 WordPress 儀表板中轉到“設置”>“常規” ,並確保 WordPress 地址 (URL) 和站點地址 (URL) 字段匹配。 WooCommerce 結帳不起作用 - WordPress 地址和站點地址

與主題和插件衝突

如前所述,插件和主題衝突是導致 WooCommerce 結帳停止工作的最常見問題之一。 要檢查是否是這種情況,請轉到有問題的頁面,右鍵單擊並轉到Inspect > Console 。 如果您看到 JavaScript 錯誤,則問題可能是由主題或插件引起的。

WooCommerce 結帳不起作用 - 控制台 JS 錯誤 如果是這種情況,請按照第 1 點中描述的步驟停用所有插件和主題。

由交易電子郵件引起的問題

有時與結帳相關的交易電子郵件可能會導致結帳在 WooCommerce 中停止工作。 如果您懷疑這可能是問題所在,您可以啟用過濾器以在訂單完成後發送電子郵件。 這將加快速度並可能解決問題。

add_filter( 'woocommerce_defer_transactional_emails', '__return_true' );

WordPress 內存限制

WP 內存限制也會產生問題並阻止 WooCommerce 結帳正常工作。 發生這種情況時,您會在您的網站上看到其中一條消息。

 致命錯誤:在第 xxx 行的 /home4/xxx/public_html/wp-includes/plugin.php 中允許的內存大小為 33554432 字節已用盡(嘗試分配 2356915 字節)

或者

413 錯誤:請求實體太大

有兩種方法可以解決此問題。 你可以:

  • 自己增加內存
  • 聯繫您的託管公司

如果您有一些編碼技能並想自己修復它,您可以嘗試以下三種方法中的任何一種:

  • 編輯 wp-config.php 文件
  • PHP.ini 文件
  • .htaccess 文件

讓我們看看如何定位和編輯它們。 專業提示:以下方法涉及編輯核心 WordPress 文件。 這意味著如果出現問題,您可以破壞您的網站,因此在編輯之前,我們建議您創建網站的完整備份。 如果您不知道如何操作,請按照本教程進行操作。

A) 編輯 wp-config.php 文件

要訪問和編輯wp-config.php文件,您有兩種選擇:

  • 面板
  • FTP客戶端

如果您嘗試使用cPanel選項,您會在File Manager > public_html下找到wp-config.php文件。 另一方面,如果您使用 FTP 客戶端,則wp-config.php文件位於public_html文件夾中。 無論您使用哪種方法,您都必須下載文件,對其進行編輯,然後再次上傳。

要增加 WP 內存限制,請在“就是這樣”行之前添加以下代碼,停止編輯! 快樂的博客

 定義('WP_MEMORY_LIMIT','256M');

該腳本基本上告訴 WordPress 將 PHP 內存限制增加到 256MB。 如果這不起作用,您可以將限制增加到 512MB,但在大多數情況下,256MB 就足夠了。

注意:值得注意的是,WordPress 內存可能與服務器內存不同,因此我們建議您設置此限制,而不管您的服務器內存設置如何。

或者,如果您對編輯核心文件感到不舒服,您可以聯繫您的託管公司。

B) 編輯 PHP.ini 文件

在 WordPress 中增加內存限制的另一種方法是編輯PHP.ini文件。 為此,請轉到public_html文件夾或安裝 WordPress 的任何位置,然後查找名為php.ini的文件。 在那裡,粘貼以下代碼行以將限制增加到 256 MB。

 memory_limit = 256M
C) 編輯 .htaccess 文件

增加 WP 內存限制並解決可能導致 WooCommerce 停止工作的問題的第三個選項是編輯.htaccess文件。 此文件位於文件夾中,但如果您在主域上安裝了 WordPress,您將在public_html文件夾下找到htaccess文件。 這是一個隱藏文件,因此請確保啟用隱藏文件。

找到 .htaccess 文件後,粘貼此代碼以增加內存限制:

 php_value memory_limit 256M

index.html 文件導致的 AJAX 調用錯誤

另一個可能導致 WooCommerce 結帳頁面停止正常工作的常見問題是由index.html文件引起的 AJAX 調用的無效響應

要解決此問題,請轉到開發人員控制台上的 XHR 選項卡 (XMLHttpRequest) 並檢查響應。 如果響應是 HTML 而不是 JSON,則問題可能是由根目錄中的index.html文件引起的。

解決此問題的最簡單方法是刪除index.html文件。 但是,如果您不想刪除任何文件,您可以調整服務器設置上的索引指令,並將index.php優先於index.html

值得注意的是,一些緩存插件還可以將 HTML 添加到 JSON 響應中,因此如果您使用其中一種工具,這也可能是導致問題的原因。

3. 確認郵件不包含下載鏈接

另一個可能給您帶來很多麻煩的常見 WooCommerce 問題是當您在客戶購買可下載產品後發送的確認電子郵件不包含下載鏈接時。 正如您可以想像的那樣,這可能會引起很多投訴,因為用戶無法下載他們剛剛購買的內容。

出現此問題是因為您的數據庫中缺少 SQL 表wp_woocommerce_downloadable_product_permissions 。 發生這種情況是因為當您在您的網站上激活 WooCommerce 時,一些 SQL 表會添加到您的數據庫中。 但是,如果存儲在wp-config.php文件中的 WordPress SQL 表前綴太長,此過程有時可能會失敗。

要解決此問題,您需要重命名 WordPress SQL 表前綴。 名稱可以包含超過 64 個字符,因此我們建議您選擇包含不超過 20-25 個字符的前綴。

要更改 WordPress SQL 表前綴,您有兩種選擇:

  1. 使用像 Change Table Prefix 或 Brozzme DB Prefix 這樣的插件。 這些工具已經有一段時間沒有更新了,但它們仍然可以完成工作。
  2. 手動重命名表。 為此,您需要使用 phpMyAdmin,減少表的前綴,並更新wp-config.php中的前綴值。 然後,停用 WooCommerce 並重新激活它以強制創建缺少的 SQL 表。

注意:無論您選擇哪種方法,我們都建議您在開始之前創建站點的備份。

4. WooCommerce 中未顯示的頁面

如果您遇到頁面不顯示內容的問題。 這可能有幾個原因,但在大多數情況下,以下內容將幫助您解決它:

  • 創建一個新頁面,添加正確的短代碼,然後發布它。
  • 然後,轉到WooCommerce > Settings > General以選擇您剛剛創建的頁面,然後按Save

5.致命錯誤:調用未定義函數is_woocommerce_active()

如果您遇到此問題並且結帳頁面在您的 WooCommerce 商店中不起作用,可能有兩個原因:

  • 過時的插件
  • 第三方主題

要解決此問題,首先,請確保您的所有插件都是最新的。 如果這不能解決錯誤,請停用您的主題,切換到 26,然後再次激活插件。 然後,您將能夠返回到您喜歡的主題。

6. 繼續結帳和使用 PayPal 付款按鈕不起作用

如果您在使用 PayPal 結賬和付款按鈕時遇到問題,並且該問題不是由插件或主題衝突引起的,您可以使用一些 CSS 解決它。 有時,某些 < div>容器具有可能導致問題的浮動集

要解決此問題,您可以在完成後清除浮動,或在包含 < div>上設置overflow:hidden 。 這樣,您可以剪輯溢出並隱藏其餘內容。

要從<div>容器中清除浮動,請在您的WordPress 儀表板中轉到外觀 > 自定義 > 附加 CSS並粘貼以下代碼:

 .e1120-2.x-container, .e1120-10.x-container { clear: both; }

或者,您可以將代碼粘貼到子主題的style.css文件中。 如果您沒有子主題,您可以創建一個或使用這些插件之一。

7. ssl_error_rx_record_too_long

如果您的 WooCommerce 結帳頁面不起作用並且您看到以下錯誤:

 SSL 收到超過最大允許長度的記錄。
(錯誤代碼:ssl_error_rx_record_too_long)

SSL/apache 配置錯誤。 如果這是您的情況,您需要聯繫您的託管服務提供商,因為這不是 WooCommerce 問題。 或者,如果您不需要使用 SSL,您可以從WooCommerce > Settings關閉Force SSL設置。

此外,您可以從“結帳”選項卡中禁用“強制安全結帳”選項。 WooCommerce 結帳不起作用 - 禁用強制 SSL

8. 下單按鈕不起作用

如果結帳頁面上的“下訂單”按鈕不起作用,則可能是主題或插件衝突。 只需按照上述步驟操作,您就可以立即啟動並運行您的商店。

9. session_start 錯誤

如果您在網站標題中看到這樣的警告,則說明您的服務器存在問題。

警告:session_start() [function.session-start]: open(xxx) failed: Permission denied (13) in xxx/wp-content/plugins/woocommerce/woocommerce.php on line XX

這是由以下兩件事之一引起的:

  • PHP 會話未正確設置
  • 會話目錄 (/ tmp ) 不可寫

要解決此問題,您需要聯繫您的託管服務提供商。

結帳停止工作時該怎麼辦?

結帳頁面出現問題是任何在線商店最糟糕的噩夢。 但是,如果您正在處理結帳問題,請不要驚慌。 不同的問題可能有不同的根源,因此很難知道是什麼導致了問題。

在大多數情況下,應該歸咎於插件或主題衝突,因此請先嘗試按照第 1 點中的說明停用所有插件和主題。如果這不能解決問題,請嘗試我們在本指南中介紹的不同解決方案,具體取決於您收到的錯誤消息的類型。 如果您沒有找到解決方案,可以查看 WooCommerce 的故障排除指南。

結論

總而言之,有幾個原因可能導致結帳在 WooCommerce 中停止工作。 在本指南中,我們向您展示了解決大多數用戶面臨的最常見問題的幾種解決方案。

其中一些問題比其他問題更容易解決,但在大多數情況下,您無需聯繫託管服務提供商即可解決這些問題。

您能否解決結帳頁面的問題並讓您的商店恢復正常運行? 您是否面臨本指南未涵蓋的問題? 在下面的評論部分讓我們知道! 我們很樂意為您提供幫助!