아래에 각종 오류들과 해결방법에서 각종 오류들을 정리하였습니다.
워드프레스 관련 각종 오류는 경험상, 플러그인 및 테마에서 발생하는 경우가 많습니다. 플러그인 비활성화(Deactivate plugins and themes) 또는 테마 변경을 먼저 시도해보세요. 플러그인 및 테마 비활성화(Deactivate plugins and themes) 를 먼저 참조하시는 것도 빠른 해결에 도움이 됩니다.
디버깅 또는 디버그는 컴퓨터 프로그램 개발 단계 중에 발생하는 시스템의 논리적인 오류나 비정상적 연산을 찾아내고 그 원인을 밝히고 수정하는 작업 과정을 뜻한다. 일반적으로 디버깅을 하는 방법으로 테스트 상의 체크, 기계를 사용하는 테스트, 실제 데이터를 사용해 테스트하는 법이 있다. 위키백과
아래에 언급한 워드프레스 관련 오류(Error)들의 원인을 찾으려면 Debugging in WordPress 문서에서 제시하듯 wp-config.php 파일에서 define( 'WP_DEBUG', false ); 라인에 찾아서 false를 true로 변경하시면 bug를 살펴 볼수 있습니다. 디버깅( debugging, 오류 수정, 해결방법)은 개인의 경험과 지식에 따릅니다.
WP_DEBUG PHP constant (상수)WP_DEBUG는 PHP constant (상수, 단순한 값을 위한 식별자(이름), 그 값은 스크립트 안에서 변경 될 수 없음. a permanent global variable)입니다. WP_DEBUG php 상수를 활성화하면(true로 변경하면) 모든 PHP errors(오류), 알림(notices) 및 경고(warnings)가 표시됩니다.
wp-config.php 파일은 WP file Manager 플러그인으로 변경이 안 되고 FTP 접속후 download한 다음에 메모장(Visual Studio 등)으로 편집한 후 올려주셔야 합니다.
(초록색은 워드프레스 ‘사이트에 기술적인 문제가 발생했습니다’ 오류 복구 방법 의 내용입니다.)
Debugging in WordPress 문서에서 제시하듯 wp-config.php 파일에서 다음 라인을 찾아서 false를 true로 변경하도록 합니다.
define( 'WP_DEBUG', false );
위의 라인을 찾아서 다음과 같이 변경합니다. 위의 라인이 없다면 아래 라인을 복사하여 wp-config.php 파일 내에 붙여넣기 합니다.
define( 'WP_DEBUG', true );
그러면 운이 좋을 경우 오류를 발생시키는 원인을 찾을 수 있습니다. 위의 라인을 wp-config.php 파일에 추가하고 저장한 후에 사이트를 방문하거나 페이지를 새로 고치면 에러 메시지가 표시될 수 있습니다.
※ wp-config.php 파일을 수정하는 방법은 “워드프레스에서 wp-config.php / htaccess 파일 수정하기“를 참고해보세요.
많은 경우 플러그인 충돌로 인해 문제가 발생합니다.
참조 : WP_DEBUG PHP constant (상수) 를 사용하면 에러를 확인하는데 유용하나 관리자외에 방문자들에게 에러가 표시되어 이용자에게 불안을 초래할 수 있습니다. 상용서비스를 제공하는 사이트의 경우, .htaccess 파일에 아래의 코드를 추가하여 에러를 추적하면 사용자에게 에러가 표시되지 않으면서 에러를 추적할 수 있어 좋습니다.
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_flag log_errors on
php_value error-log /public_html/php-errors.log
이렇게 하면 로그는 저장되나 에러 메세지가 화면에 표시되는 안습니다. 이 설정은 에러 메시지가 공개적으로 화면에 나타나지 않아야 하는 사용 서비스를 환경에 적합합니다.
WP_DEBUG PHP constant (상수)의 companion(동반자, 동반자의 의미는 정확히 모르겠으나 상수와 같이 쓸수 있는 추가기능 정도로 해석됩니다)WP_DEBUG_LOG 모든 오류가 debug.log 로그 파일에도 저장되도록하는 WP_DEBUG의 동반자입니다. 이것은 나중에 모든 알림을 검토하거나 화면에서 생성 된 알림을 보려는 경우에 유용합니다 (예 : AJAX 요청 또는 wp-cron 운영).
이렇게하면 error_log()Ajax 이벤트를 디버깅 할 때 유용 할 수있는 PHP의 내장 함수를 사용하여 로그 파일에 쓸 수 있습니다.
로 설정 true하면 로그가 사이트 파일 시스템 내의 debug.log콘텐츠 디렉토리 (일반적으로 wp-content/debug.log) 에 저장됩니다 . 또는 유효한 파일 경로로 설정하여 파일을 다른 곳에 저장할 수 있습니다.
define ( 'WP_DEBUG_LOG', true);
-또는-
define ( 'WP_DEBUG_LOG', '/tmp/wp-errors.log');
WP_DEBUG_LOG is a companion to WP_DEBUG that causes all errors to also be saved to a debug.log log file This is useful if you want to review all notices later or need to view notices generated off-screen (e.g. during an AJAX request or wp-cron run).
Note that this allows you to write to log file using PHP’s built in error_log() function, which can be useful for instance when debugging Ajax events.
When set to true, the log is saved to debug.log in the content directory (usually wp-content/debug.log) within your site’s filesystem. Alternatively, you can set it to a valid file path to have the file saved elsewhere.
define( 'WP_DEBUG_LOG', true );
-or-
define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' );
Note: for WP_DEBUG_LOG to do anything, WP_DEBUG must be enabled (true). Remember you can turn off WP_DEBUG_DISPLAY independently.
WP_DEBUG PHP constant (상수)의 companion(동반자, 동반자의 의미는 정확히 모르겠으나 상수와 같이 쓸수 있는 추가기능 정도로 해석됩니다)WP_DEBUG PHP constant (상수)를 사용하면 개발자의 입장에서는 PHP errors(오류), 알림(notices) 및 경고(warnings)를 볼 수 있어 좋은데, 운영중인 홈페이지나 쇼핑몰에 아래와 같이 notice가 보이면 사이트를 방문한 사람들은 믿을 수 없는 사이트 또는 이상한 사이트로 볼 수 있습니다. 이럴때 이용할 수 있는 옵션이 WP_DEBUG_DISPLAY 입니다.
define( ‘WP_DEBUG’, true ); 밑에 define ( ‘WP_DEBUG_DISPLAY’, false); 를 추가해주시면 더이상 PHP errors(오류), 알림(notices) 및 경고(warnings)가 일반 방문자들에게 보이지 않게 됩니다.
WP_DEBUG_DISPLAYWP_DEBUG디버그 메시지가 페이지의 HTML 내부에 표시되는지 여부를 제어하는 또 다른 동반자 입니다. 기본값은 ‘true’이며 생성시 오류 및 경고를 표시합니다. 이것을 false로 설정하면 모든 오류가 숨겨집니다. WP_DEBUG_LOG나중에 오류를 검토 할 수 있도록와 함께 사용해야합니다 .
define ( 'WP_DEBUG_DISPLAY', false);
참고 : 작업 WP_DEBUG_DISPLAY을 수행 WP_DEBUG하려면 활성화 (true)해야합니다. WP_DEBUG_LOG독립적으로 제어 할 수 있습니다 .
WP_DEBUG_DISPLAY is another companion to WP_DEBUG that controls whether debug messages are shown inside the HTML of pages or not. The default is ‘true’ which shows errors and warnings as they are generated. Setting this to false will hide all errors. This should be used in conjunction with WP_DEBUG_LOG so that errors can be reviewed later.
define( 'WP_DEBUG_DISPLAY', false );
Note: for WP_DEBUG_DISPLAY to do anything, WP_DEBUG must be enabled (true). Remember you can control WP_DEBUG_LOG independently.
WP_DEBUG PHP constant (상수)와 companion(동반자)를 수정하는 방법보통은 FTP를 이용하여 다운로드한후 수정하고 업로드하여 디버깅 설정을 하는데 저는 WP file Manager 플러그인을 이용하고 있어 이것으로 디버깅 코드를 수정하였습니다.
플러그인에서 wp-config.php를 선택하고 우클릭한후,Code Editor 로 바로 편집할 수 있습니다. 그러나 중요 화일이므로 백업본을 정장해 놓고 편집해주세요.
아래의 3개의 플러그인들은 wordpress.org 에서 추천해주는 debugging 용 플러그인들입니다. 나중에 업데이트하겠습니다. 위에 ‘wp-config.php에 디버깅( debugging, 오류 수정(誤謬修正)) 코드를 넣어 원인을 찾는 방법’은 오류 코드를 확인할 수 있으나 그 내용이 무엇인지 전문지식이 있어야 합니다. 아래의 플러그인 활용하면 원인을 보다 쉽고 체계적으로 알 수 있고 그 해결방법을 제시해 줄 것도 같습니다.
Query Monitor (쿼리 모니터)는 정보를 담당하는 플러그인, 테마 또는 기능별로 그룹화 된 데이터베이스 쿼리를 표시하는 등 유용한 방식으로 정보를 표시하는 데 중점을 둡니다. 이를 통해 성능이 저조한 플러그인, 테마 또는 기능을 효율적으로 결정할 수 있습니다.
내 워드프레스 사이트의 상태 확인 – Query Monitor 에서 이 플러그인을 아래와 같이 소개하고 있습니다.
현재 이 워드프레스 사이트의 상태를 이처럼 알기쉽게 잘 알려주는 플러그인이 없기 때문입니다.
조금 더 자세하게 설명하자면
예를들어 사이트가 플러그인을 몇개 설치했더니 뭔가 상태가 좀 이상하다, 혹은 사이트가 이전보다 느려진것같다고 느껴질때가 있는데 원인을 알아야 해결을 할 수 있습니다.
이 쿼리 모니터는 이 원인을 파악하는데 도움이 되며 특히 워드프레스로 사이트를 제작하는 개발자에게는 필수라고 생각됩니다.
개인적으로 워드프레스 개발은 이 쿼리모니터 플러그인이 나오기 전과 후가 많이 달라졌다고 생각하며 번거로운 확인 작업이 정리해서 깔끔하게 표시해주기때문에 한번에 끝나게 됐습니다.
이 쿼리 모니터를 보고 속도에 영향을 준다거나 에러가 발생하는 플러그인은 아예 도입을 하지 않습니다. 관리를 하게 된다는 뜻입니다.
개인적으로 플러그인이 아니라 워드프레스 기본 기능에 추가해도 좋을만한 잘 만들어진 플러그인이라고 생각합니다.
아래의 게시글에 따로 정리하였습니다.
일단 이 사이트는 1. 카카오톡 문의 https://pf.kakao.com/_Pxlmxjj 를 이용하여 빠르게 워드프레스 관련 문제를 카톡을 통해 해결할 수 있고, 2. 수강을 통해 워드프레스 개발자(테마, 플러그인 개발자)로 성장할 수 있으며
3. 평소에 제가 지대한 관심을 가지고 있는 PG개발에서 도움을 얻을 수 있을 것으로 판단됩니다.
사이트 Wappalyzer( https://news.wp-kr.com/ ) 로 살펴보아도 전문개발자임을 알 수 있습니다.
이글에서는 ‘2. 워드프레스 관련 문제가 발생할 수 밖에 없는 이유’가 인상적입니다.
아래와 같이 소개하고 있습니다.
워드프레스 WordPress 와 관련된 각종 문제가 있을 시 워드프레스톡 WP TALK COM 이 신속하게 문제를 진단하고 해결해 드립니다
또한 단순히발생한 오류 에러를 해결하고 복구해 드릴 뿐만 아니라 해당 문제가 발생한 원인과 이유를 워드프레스 프레임워크의 구동 원리에 기반하여
자세히 설명해 드립니다
의뢰인은 이를 통해 문제 해결은 물론 워드프레스에 대한 이해도를 보다 더 높일 수 있습니다.
서비스에 대한 문의 사항이 있으시면 카카오톡으로 연락 주세요.
온라인 강의도 있는 것같은데 문의해 보세요.
참고 : 워드프레스 개발자가 반드시 사용해야 하는 무료 플러그인 리스트 총정리 – 워드프레스웹코리아( https://news.wp-kr.com/wordpress-developers-must-plugins/#index-07 )
다양한 원인으로 발생할 수 있겠으나 저의 경험으로는 메모리 제한 문제로 발생한 경험이 3번 있습니다. 메모리가 부족한 문제는 플러그인이나 테마를 비활성화하면 해결이 되어 플러그인이나 테마 문제라고 생각하기 쉬우나 본질적인 문제는 메모리 부족이었으며 메모리를 늘려 해결하였습니다.

아래의 게시글에 정리하였습니다.
이런 메시지가 뜨면서 하얀창만 나옵니다.
결제 페이지 문제를 해결하려고 우커머스를 비활성화한 이후에 발생하였습니다.
급한대로 카페24로 복원하였습니다.
https://www.seenbuy.kr/http-error-500-%ec%99%80-%ec%b9%b4%ed%8e%9824-%eb%b3%b5%ec%9b%90/
참고로 카페24의 경우 지난 7일 이내의 기간으로 복원이 가능하고 해외 웹호스팅 중 블루호스트를 이용하고 있고 유료 백업 서비스인 사이트그라운드 (SiteGround) 를 이용하고 계시다면 30일 이내의 것을 복원할 수 있습니다.
“이 웹사이트에 치명적인 오류가 있습니다. 지침을 위해 사이트 관리자 이메일의 받은 편지함을 확인해주세요.
워드프레스 장애복구에 관해 더 알아보기”
위에 (1)과 같은 오류 문구인데, 원인이 다른 경우라 메모합니다.

이번 오류는 betheme에는 Elementor 에디터 플러그인과 호환되는 테마가 있고 그렇지 않은 테마가 있는데, Elementor 플러그인과 호환되지 않는 테마를 기존에 Elementor 로 다수의 페이지를 만들어 놓은 사이트에 betheme를 설치하여 발생하였습니다. Elementor 플러그인과 호환되는 betheme를 설치하니 바로 해결되었습니다.
아래의 이미지에서 파랑색 네모는 betheme중 머핀 에디터, 엘리멘터 에디터, 우커머스가 모두 가능한 테마라는 의미이고 분홍색 네모칸은 머핀 에디터만 가능하다는 의미입니다. 분홍색 네모가 있는 betheme를 설치(pre-built website)하시면 “이 웹사이트에 치명적인 오류가 있습니다. 지침을 위해 사이트 관리자 이메일의 받은 편지함을 확인해주세요. 워드프레스 장애복구에 관해 더 알아보기” 에러가 발생합니다.

워드프레스 정보꾸러미의 누락된 기본 우커머스 페이지 생성하기 를 참조하시어 1. 누락된 기본 우커머스 페이지를 생성하고 2. 생성된 우커머스 페이지를 지정해주세요.
이하 초록색은 워드프레스 정보꾸러미의 누락된 기본 우커머스 페이지 생성하기의 글입니다.
누락된 기본 우커머스 페이지를 다시 생성하려면 워드프레스 알림판에서 우커머스 > 상태 > 도구로 이동합니다. (영문 버전의 경우 WooCommerce > Status > Tools)

( 이미지 출처 : 워드프레스 정보꾸러미의 누락된 기본 우커머스 페이지 생성하기 )
그런 다음 기본 우커머스 페이지 생성하기(Create default WooCommerce pages)로 이동하여 맨 오른쪽에 있는 “페이지 생성하기(Create pages)“를 클릭합니다.

( 이미지 출처 : 워드프레스 정보꾸러미의 누락된 기본 우커머스 페이지 생성하기 )
그러면 누락된 기본 우커머스 페이지가 다시 생성됩니다.
원하는 경우 장바구니, 결제, 내 계정, 이용 약관 페이지 등을 직접 만들어서 우커머스 페이지로 지정하는 것이 가능합니다.
페이지를 지정하려면 우커머스 > 설정 > 고급으로 이동합니다. “페이지 설정” 섹션에서 원하는 페이지를 장바구니 페이지나 결제 페이지 등으로 지정할 수 있습니다.

( 이미지 출처 : 워드프레스 정보꾸러미의 누락된 기본 우커머스 페이지 생성하기 )
원하는 경우 장바구니, 결제, 내 계정, 이용 약관 페이지 등을 직접 만들어서 우커머스 페이지로 지정하는 것이 가능합니다.
결제 플러그인 문제일까하여 현재 사용하고 있는코드엠에 문의하였는데 코드엠의 플러그인을 비활성화해도 같은 문제가 나오는 것은 코드엠의 플러그인들의 문제가 아니라고 하며 더 이상 도와줄 수 없다고 합니다.
WooCommerce checkout not working: How to fix it 는 상세한 설명이 나오는데, 아직 이 글을 통해 해결하지는 못했습니다.
결제가 WooCommerce에서 작동을 멈추게하는 가장 일반적인 문제는 충돌 을 일으키는 테마 또는 플러그인입니다 . 가장 효과적인 해결책은 모든 플러그인을 비활성화하고 어떤 플러그인이 문제를 일으키는 지 확인하는 것입니다.
결제로 이동하여 페이지의 아무 곳이나 마우스 오른쪽 버튼으로 클릭 한 다음 Inspect> Console 로 이동하여 확인할 수 있습니다 . Javascript 오류가 표시되면 일부 플러그인 또는 테마가 문제를 일으키는 것입니다. 충돌을 일으키는 플러그인 또는 테마를 확인하려면 두 가지 옵션이 있습니다.
WooCommerce 제외한 모든 플러그인을 비활성화하고 Twenty Seventeen 또는 Storefront와 같은 기본 테마를 활성화한후 플러그인을 하나씩 활성화하면서 어떤 것이 충돌을 일으키는지 수동으로 확인할 수 있습니다.
이 플러그인은 WordPress.org community에서 제공한다는 점에서 신뢰가 가고 시간이 지날수록 그 기능이 향상될 것으로 기대됩니다.
워드프레스가 5.2로 업데이트되면서 사이트 상태 확인 및 PHP Error Protection 같은 기능이 추가되면서 보안이 한층 강화되었습니다. 최신 버전의 워드프레스에서 도구 > 사이트 상태를 방문하면 아래와 같이 사이트 상태 정보와 함께 개선해야 할 사항을 확인할 수 있습니다.(워드프레스 5.2 공개 (Site Health Check 및 PHP Error Protection 기능 추가) 아래의 이미지는 플러그인이 설치되기 이전의 화면입니다.
플러그인을 설치하고 나면 ‘사이트 상태’ 대신 ‘Site Health’가 표시됩니다(아직 한글화가 안 되어서 그렇습니다)
Health Check & Troubleshooting 플러그인을 설치하면 Status(상태)와 Info(정보) 탭 외에 Troubleshooting(문제 해결)과 Tools(도구) 탭이 추가됩니다.
Troubleshooting 탭에서는 문제를 일으키는 플러그인을 찾을 수 있도록 플러그인을 비활성화하여 문제가 해결되는지 체크할 수 있습니다. 하지만 아직은 기대에 미치지 못하는 점이 있으나 위에서 언급했듯 이 플러그인은 WordPress.org community에서 제공하고 지속적으로 업데이트될 것이므로 시간이 지날수록 그 기능이 향상될 것으로 기대됩니다.
[Enable Troubleshooting Mode]을 선택하시면 플러그인이 자동으로 Twenty Seventeen 또는 Storefront와 같은 기본 테마로 테마를 변경하고 플러그인도 테스트에 적합하도록 기본 우커머스와 같은 기본 플러인을 제외한 모든 플러그인을 비활성화하고 테스트해결 모드로 전환시킵니다.
사이트가 현재 Troubleshooting Mode(문제 해결 모드)는 사이트 방문자에게 아무런 영향을 미치지 않으며 평소와 같이 귀하의 사이트를 계속 볼 수 있습니다. 이것은 관리자에게 보여지며, 처음으로 WordPress를 설치 한 것처럼 보여집니다.
Troubleshooting Mode(문제 해결 모드)에서는 기존에 오류가 발생하지 않는다면, 여기에서 개별 플러그인 또는 테마를 활성화하여 사이트에서 비정상적인 동작을 유발할 수있는 원인을 찾으시면 됩니다.
Troubleshooting Mode(문제 해결 모드)에서도 에러가 발생한다면 이것은 테마 그리고/또는 플러그인 충돌문제는 아니라고 보셔야 합니다.
문제를 해결하였거나 문제해결 도중에 원래에 모드로 돌아가고자 하는 경우에는 아래의 이미지와 같이 [Disable Troubleshooting Mode]를 선택하시면 됩니다.
WooCommerce 체크 아웃이 작동을 멈추게하는 또 다른 일반적인 문제는 무한 로딩 입니다. 대부분의 경우 AJAX로 인해 문제가 발생합니다. 주문 검토 페이지는 AJAX를 통해 결제 수단 또는 총액을로드하고 로드 스피너를 표시합니다.
그러나 문제가있는 경우 섹션이로드되지 않거나 페이지를로드하지 않고 스피너가 남아있을 수 있습니다. 이 경우 먼저 우커머스 WooCommerce> 상태 > 시스템 상태를 살펴보고 오류를 확인하십시오. 보여지는 오류는 아래와 같습니다.
| WooCommerce 페이지 | ||
|---|---|---|
| 상점 기준 경로: | #2891 – / | |
| 장바구니: | #2893 – /cart/ | |
| 결제: | #76887 – /checkout/ | |
| 내 계정: | #2897 – /my-account/ | |
| 이용약관: | 페이지가 설정되지 않았습니다 |
로그는 우커머스 WooCommerce> 상태 > 로그에서 날짜를 선택하여 확인할 수 있습니다.
최근에 발생한 에러 로그의 내역은 아래와 같습니다. arguments 즉, 결제할 금액등을 가져오지 못했다는 의미인데…. 도저히 원인을 못찾겠습니다.
2021-06-19T01:20:49+00:00 CRITICAL Uncaught ArgumentCountError: Too few arguments to function get_month_link(), 1 passed in /kimsangheu1/www/wp-content/themes/buzzstore/sparklethemes/functions.php on line 495 and exactly 2 expected in /kimsangheu1/www/wp-includes/link-template.php:577
Stack trace:
#0 /kimsangheu1/www/wp-content/themes/buzzstore/sparklethemes/functions.php(495): get_month_link('2021')
#1 /kimsangheu1/www/wp-content/themes/buzzstore/sparklethemes/functions.php(118): buzzstore_breadcrumbs()
#2 /kimsangheu1/www/wp-includes/class-wp-hook.php(292): buzzstore_breadcrumb_post('')
#3 /kimsangheu1/www/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters('', Array)
#4 /kimsangheu1/www/wp-includes/plugin.php(484): WP_Hook->do_action(Array)
#5 /kimsangheu1/www/wp-content/themes/buzzstore/archive.php(12): do_action('buzzstore-bread...')
#6 /kimsangheu1/www/wp-includes/template-loader.php(106): include('/kimsangheu1/ww...')
#7 /kimsangheu1/www/wp-blog-header.php(19): require_once('/kimsangheu1/ww...')
#8 /kimsangheu1/www/index.php(17):(/kimsangheu1/www/wp-includes/link-template.php, 줄 577)
#8 /kimsangheu1/www/index.php(17):(/kimsangheu1/www/wp-includes/link-template.php, 줄 577) 을 열어보니 주문연도(year)과 달(month)를 가져오는 함수입니다.
function get_month_link( $year, $month ) {global $wp_rewrite;if ( ! $year ) {$year = current_time( ‘Y’ );}if ( ! $month ) {$month = current_time( ‘m’ );}$monthlink = $wp_rewrite->get_month_permastruct();if ( ! empty( $monthlink ) ) {$monthlink = str_replace( ‘%year%’, $year, $monthlink );$monthlink = str_replace( ‘%monthnum%’, zeroise( (int) $month, 2 ), $monthlink );$monthlink = home_url( user_trailingslashit( $monthlink, ‘month’ ) );} else {$monthlink = home_url( ‘?m=’ . $year . zeroise( $month, 2 ) );}
다음은 가장 일반적인 문제에 대한 몇 가지 해결책입니다.
WooCommerce 체크 아웃의 작동을 중지시키는 일반적인 문제는 WordPress 주소 (URL)와 사이트 주소 (URL)가 일치하지 않는다는 것입니다. AJAX 요청은 동일한 도메인에서만 작동하므로 두 URL이 일치해야합니다.
이것이 문제의 원인인지 확인하려면 WordPress 대시 보드에서 설정> 일반으로 이동 하여 WordPress 주소 (URL) 및 사이트 주소 (URL) 필드가 일치하는지 확인합니다.
서브디렉토리 또는 서브도메인사용시에는 설정>일반에 WordPress 주소 (URL)와 사이트 주소 (URL)가 표시되지 않습니다. 네트워크 관리 플러그인을 사용하는 경우, 아래와 같이 모든 네트워크의 사이트 > 설정에 표시됩니다.
As mentioned earlier, plugin and theme conflicts are one of the most common issues that cause the WooCommerce checkout to stop working. To check if that’s the case, go to the page that has problems, right-click and go to Inspect > Console. If you see a JavaScript error, the issue is probably caused by a theme or plugin.
앞서 언급했듯이 플러그인 및 테마 충돌은 WooCommerce 결제가 작동을 중지하는 가장 일반적인 문제 중 하나입니다. 이 경우인지 확인하려면 문제가있는 페이지로 이동하여 마우스 오른쪽 버튼을 클릭하고 Inspect> Console 로 이동합니다 . JavaScript 오류가 표시되면 테마 또는 플러그인으로 인해 문제가 발생한 것일 수 있습니다.
If this is the case, deactivate all the plugins and themes following the steps described in point 1.
이 경우 포인트 1에 설명 된 단계에 따라 모든 플러그인과 테마를 비활성화하십시오.
Sometimes transactional emails related to the checkout may cause the checkout to stop working in WooCommerce. If you suspect that this may be the issue, you can enable a filter to send the emails after the order is complete. This will speed things up and may solve the problem.
add_filter( 'woocommerce_defer_transactional_emails', '__return_true' );
때때로 결제와 관련된 거래 이메일로 인해 결제가 WooCommerce에서 작동하지 않을 수 있습니다. 이것이 문제 일 수 있다고 의심되는 경우 주문이 완료된 후 필터를 사용하여 이메일을 보낼 수 있습니다. 이렇게하면 속도가 빨라지고 문제가 해결 될 수 있습니다.
add_filter( 'woocommerce_defer_transactional_emails', '__return_true' );
WP 메모리 제한으로 인해 문제가 발생하고 WooCommerce 체크 아웃이 제대로 작동하지 않을 수도 있습니다. 이 경우 사이트에 이러한 메시지 중 하나가 표시됩니다.
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2356915 bytes) in /home4/xxx/public_html/wp-includes/plugin.php on line xxx
또는
413 Error: Request Entity Too Large
이 문제를 해결하기위한 두 가지 옵션이 있습니다. 다음을 수행 할 수 있습니다.
코딩 기술이 있고 직접 수정하려면 다음 세 가지 방법 중 하나를 시도해 볼 수 있습니다.
각각을 찾고 편집하는 방법을 살펴 보겠습니다.
[시작하기전 조언] 다음 방법은 핵심 WordPress 파일 편집을 포함합니다. 즉, 문제가 발생하면 사이트를 손상시킬 수 있으므로 편집하기 전에 사이트의 전체 백업을 만드는 것이 좋습니다. 방법을 모르는 경우, 이 자습서를 따르십시오 .
참고로, 저는 개인적으로는 WP file Manager 플러그인과 Visual Studio Code를 이용하여 wp-config.php 파일을 편집하는 방식을 애용하고 있습니다.
wp-config.php 파일에 액세스하고 편집하려면 두 가지 옵션이 있습니다.
cPanel 옵션을 시도하면 File Manager > public_html 아래 에서 wp-config.php 파일을 찾을 수 있습니다. 반면에 FTP 클라이언트를 사용하는 경우 wp-config.php 파일은 public_html 폴더에 있습니다. 사용하는 방법에 관계없이 파일을 다운로드하고 편집 한 다음 다시 업로드해야합니다.
WP 메모리 제한을 늘리려면 That ‘s all, stop editing! 이라는 줄 앞에 다음 코드를 추가하십시오 .
That’s all, stop editing! Happy blogging.
define ( 'WP_MEMORY_LIMIT', '256M');
이 스크립트는 기본적으로 WordPress에 PHP 메모리 제한을 256MB로 늘리도록 지시합니다. 그래도 작동하지 않으면 제한을 512MB로 늘릴 수 있지만 대부분의 경우 256MB이면 충분합니다.
참고 : WordPress 메모리는 서버 메모리와 다를 수 있으므로 서버 메모리 설정에 관계없이 이 제한을 설정하는 것이 좋습니다.
또는 핵심 파일을 편집하는 것이 편하지 않다면 호스팅 회사에 문의 할 수 있습니다.
WordPress에서 메모리 제한을 늘리는 또 다른 방법은 PHP.ini 파일 을 편집하는 것 입니다. 이렇게하려면 public_html 폴더 또는 WordPress를 설치한 루트 디렉토리 위치 로 이동하여 php.ini 라는 파일을 찾습니다 . 여기에 다음 코드 줄을 붙여 넣어 제한을 256MB로 늘립니다.
memory_limit = 256M ( 또는 128M)
WP 메모리 제한을 늘리고 WooCommerce가 작동을 멈추게 하는 문제를 해결하는 세 번째 옵션은 .htaccess 파일 을 편집하는 것 입니다. 이 파일은 루트 폴더에 있지만 기본 도메인에 WordPress를 설치 한 경우 public_html 폴더에서 htaccess 파일을 찾을 수 있습니다. 이 파일은 숨김 파일이므로 숨김 파일을 활성화해야합니다.( g=have ‘ 숨김 파일 표시 ‘를 활성화하면 .htaccess를 쉽게 찾을 수 있습니다 . 찾을 수 없으면 새 코드를 만들고 코드를 붙여넣고 .htaccess 로 저장한 다음 wp-admin 폴더 에 업로드하세요 . )
.htaccess 파일을 찾으면 다음 코드를 붙여 넣어 메모리 제한을 늘립니다.
php_value upload_max_filesize 128M php_value post_max_size 128M php_value memory_limit 128M php_value max_execution_time 300 php_value max_input_time 300
참고: 위의 방법을 사용한 후 500 내부 서버 오류 가 발생할 수 있습니다 . 대부분의 경우 서버가 CGI 모드에서 PHP를 실행하고 있기 때문 입니다. 이러한 경우 .htaccess 파일에서 위의 명령을 사용할 수 없습니다.
저의 경우, 카페24 호스팅을 이용하여 이 방법을 실행할때 ‘php_value memory_limit 256M’ 로 하니 아래와 같은 500 내부서버 오류가 나왔습니다. 그 이유는 cafe24 웹호스팅 서비스에서는 기본적으로 제공되는 memory_limit 설정 크기는 128MB로 제공하는데, ‘php_value memory_limit 256M'(memory_limite을 256Mbyte)로 설정했기 때문입니다. 카페24 호스팅을 이용하시는 분들은 참조하세요. How to Increase the Max Upload Size in WordPress
500 Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at [email protected] to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log.
참고 : .htaccess 파일
php_value memory_limit 64M
이 명령은 PHP의 메모리 최대값을 64MB로 증가시킵니다. 또한 다음과 같이 설정하면 최대 업로드 파일 크기와 최대 포스트 크기를 설정할 수 있습니다.
php_value upload_max_filesize 20M
php_value post_max_size 20M
이 명령은 최대 업로드 및 포스트 크리를 20M로 증가 시킵니다. 대다수 호스팅 업체는 이 값을 2M가량으로 제한하므로 이러한 설정을 통해 대용량 파일 업로드를 가능하게 할 수 있습니다. 물론 모든 호스팅 업체가 이렇게 .htaccess 파일에서의 설정 변경을 허용하는 것은 아니므로 경우에 따라 메모리를 증가시키는 설정 변경을 할 수 없는 경우도 있습니다.
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_flag log_errors on
php_value error-log /public_html/php-errors.log
이렇게 하면 로그는 저장되나 에러 메세지가 화면에 표시되는 안습니다. 이 설정은 에러 메시지가 공개적으로 화면에 나타나지 않아야 하는 사용 서비스를 환경에 적합합니다.
WooCommerce 체크 아웃 페이지가 올바르게 작동 하지 않게하는 또 다른 일반적인 문제 는 index.html 파일로 인한 AJAX 호출의 잘못된 응답입니다 .
이 문제를 해결하려면 개발자 콘솔의 XHR 탭 (XMLHttpRequest)으로 이동하여 응답을 확인하십시오. ( 1. Network -> 2. XHR를 차례로 선택하시면 됩니다.)
응답이 JSON 대신 HTML 인 경우 문제는 루트 디렉터리의 index.html 파일로 인해 발생한 것일 수 있습니다.
이를 수정하는 가장 쉬운 방법은 index.html 파일을 제거하는 것 입니다. 그러나 파일을 삭제하지 않으려면 서버 설정에서 indexes 지시문을 조정하고 index.html 보다 index.php 로 우선 순위를 지정할 수 있습니다.(The easiest way to fix this is to remove the index.html file. However, if you don’t want to delete any files, you can adjust the indexes directive on the server settings and prioritize index.php over index.html.) –> 빙빙 도는 문제가 발생한 결제 페이지가 있는 쇼핑몰에는 index.html이 없고 index.php가 있으므로 이 문제도 아닙니다.
일부 캐싱 플러그인 은 JSON 응답에 HTML을 추가 할 수 있으므로 이러한 도구 중 하나를 사용하는 경우 문제의 원인이 될 수도 있습니다. -> 문제를 야기하는 사이트에는 따로 캐싱 플러그인은 없으므로 이 원인은 아닙니다.
아래의 왼쪽 이미지처럼 상품페이지에서 [주문 수량 수정] 버튼과 [장바구니(Add to Cart)] 추가 버튼이 안 보여서 장바구니에 추가할 수 없고 장바구니에 추가가 되지 않으니 결제페이지로 이동할 수도 없습니다.

테마 문제 > 2. 플러그인 충돌 > 3. WooCommerce 설정 문제순으로 접근하려고 하였는데, 1. 테마 문제였습니다. 우커머스의 대표 테마인 Storefront(by 오토매틱)을 설치하니 바로 잘 됩니다. 보다 정확하게는 저희가 이용하는 betheme의 문제였으며 betheme에서 [Theme Option] -> [Shop(상점)] -> [General(일반)] -> [Catalogue mode]로 가면 Enable(활성화)되어 있는 것을 Disable(비활성화]로 변경해주시면 됩니다.

Warning > Notice > Deprecated 순으로 위험합니다.
이들 에러들은 wp-config.php 파일에 WP_DEBUG PHP constant (상수)를 수작업으로 넣어 확인할 수도 있고 Query Monitor 플러그인을 이용하여 PHP 오류(PHP Errors) 패널에서 쉽게 확인할 수도 있습니다.
Warning 코드를 발생시키는 코드는 예상대로 작동하지 않고 사이트의 작동이 중단 될 수 있음을 의미합니다. 즉시 warnings를 조사해야합니다. 또한 warning는 각 오류가 서버에 기록되기 때문에 사이트를로드하는 데 걸리는 시간을 늘릴 수 있습니다.
Notice 코드를 발생시키는 코드는 Warning 코드보다 덜 중요하지만 잘못 작성된 코드를 나타낼 수 있으므로 조사해야합니다. 통지는 구성에 따라 서버에 기록되거나 기록되지 않을 수 있습니다.
Notice 는 알고는 있어라 정도의 에러인 것 같습니다.
위에서 언급한 워드프레스 디버깅 적용시 나오는 에러입니다. 한국어 적용 워프프레스에는 “Notice: shipping_country을 바르지 않게 호출했습니다.”라고 보여집니다.
“billing_city was called incorrectly. Order properties should not be accessed directly.”라는 에러는 많이 구글링이되는데 이 에러는 저만 겪는 에러인 것 같습니다.
에러 내용 전부는 아래와 같습니다.
Notice: shipping_country을 바르지 않게 호출했습니다. Order properties should not be accessed directly. Backtrace: require(‘wp-blog-header.php’), require_once(‘wp-includes/template-loader.php’), include(‘/themes/buzzstore/page.php’), get_template_part, locate_template, load_template, require(‘/themes/buzzstore/template-parts/content-page.php’), the_content, apply_filters(‘the_content’), WP_Hook->apply_filters, do_shortcode, preg_replace_callback, do_shortcode_tag, WC_Shortcodes::checkout, WC_Shortcodes::shortcode_wrapper, WC_Shortcode_Checkout::output, WC_Shortcode_Checkout::order_received, wc_get_template, include(‘/plugins/woocommerce/templates/checkout/thankyou.php’), do_action(‘woocommerce_thankyou’), WP_Hook->do_action, WP_Hook->apply_filters, woocommerce_order_details_table, wc_get_template, include(‘/plugins/woocommerce/templates/order/order-details.php’), do_action(‘woocommerce_order_details_after_order_table’), WP_Hook->do_action, WP_Hook->apply_filters, MSADDR_Address_Book::wooco in /kimsangheu1/www/wp-includes/functions.php on line 5313 Notice: Array to string conversion in /kimsangheu1/www/wp-content/plugins/woocommerce/includes/wc-core-functions.php on line 208
개인적으로는 엠샵 대한민국 주소 & 체크아웃 에디터 플러그인의 1년 사용 기간이 만료된 것을 의심합니다.
“라이센스 정보가 올바르지 않습니다.” 이 문구가 떠도 구냥 나두면 되었던 것을 괜히 [재설정] 버튼을 눌러서 라이센스정보가 삭제되었고 만료일이 지나 복구가 안되면서 어쩔 수 없이 69,000을 낭비한 것 같습니다 .
디버깅을 죽이고 무료 사용하는 방법도 있으니 참조하세요.
중요한 것은 추가로 69,000원을 지불해야 하는가입니다. 이부분은 정리한후 꼭, ‘엠샵 대한민국 주소 & 체크아웃 에디터 플러그인’에 메모해 놓아야 합니다.
deprecated 는 무효화라는 의미이므로 전에는 의미가 있어지만 현재는 의미가 없다는 것이므로 치명적인 에러는 아닌 것 같습니다.
주문 상세 내역도 잘 표시되고 Payment부분에 ‘직접 은행 계좌 이체, 신용카드, 실시간 계좌이체, 에스크로’ 등도 활성화되었고 정상으로 돌아왔는데, [주문확정]버튼을 누루면 다시 페이지 상단으로 이동하며 PG 결제모듈 호출이 안되어서 워드프레스 디버깅을 하여 에러내역을 살펴보니 아래와 같이 나옵니다.
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; XPayClient has a deprecated constructor in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 2 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 Notice: Undefined index: CDM_SATCOM in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 151 Warning: error_log(c:\lgdacom\log/log_20210520.log): failed to open stream: Permission denied in /kimsangheu1/www/wp-content/plugins/pgall-for-woocommerce/lib/lguplus/lgdacom/XPayClient.php on line 572 {“result”:”success”,”payment_form”:
이 에러는 코드엠샵의 도움을 받아서 “PGALL 워드프레스 결제” 플러그인을 최신 버전(2.2.4)으로 업데이트해서 해결하였습니다.
참고자료 : 1. 워드프레스 ‘사이트에 기술적인 문제가 발생했습니다’ 오류 복구 방법
2. WooCommerce checkout not working: How to fix it
3. 카페24에서 워드프레스 WordPress 사이트 상태 페이지가 작동하지 않는 문제가 발생하는 경우
4. 내 워드프레스 사이트의 상태 확인 – Query Monitor
5. Buy Now/Add To Cart “Button” is not showing on Product Page