Wordpress에서 get_option
메소드에 문제가 있습니다.AJAX에서 Wordpress get_option() 문제가 발생했습니다.
저는 WooCommerce 웹 사이트를 운영 중이며 currency symbol position
은 "공백이있는 권리"로 설정되어 있습니다. wp_options 테이블에서 option_name
"woocommerce_currency_pos"가 "right_space"로 올바르게 설정되었습니다.
정상적인 웹 사이트에서 제품을 볼 때 모두 정상적으로 작동하면 통화 코드가 오른쪽에 표시되고 옵션 값이 올바르게 반환됩니다.
그러나 문제는 작은 JS 함수를 사용하여 라이트 박스에 장바구니 (mini_cart.php
)를 표시하고 반환되는 코드는 왼쪽에 통화 코드를 표시합니다.
디버깅 조금 후에 나는 여기에 방법 get_woocommerce_price_format
첫 번째 라인을 찾을 수 있습니다 : $currency_pos = get_option('woocommerce_currency_pos');
그래서이 옵션 테이블에서 언급 option_name
의 가치를 얻을 수있는 단지 기본 기능입니다. 그러나 이것은 Ajax 호출에서 "left"를 반환합니다.
어떻게 지구상에서 나는이 값이 데이터베이스의 값과 다른 값을 반환하는지 알 수 없습니다.
명백한 잠재적 인 문제는 :
- 아약스가 잘못된 도메인/웹 사이트를 호출 - 그러나 이런 일이되지 않으며, 동일한 프로젝트, 동일한 코드입니다. 코드에 대한 변경 사항은 괜찮습니다. (
die($currency_pos)
은 문자열을 반환합니다.) - 다른 데이터베이스에서 가져옵니다. 프로젝트 및 구성 설정 1 세트 만 있으므로 다른 곳에서이 데이터를 가져 오는 것이 거의 불가능합니다. WooCommerce와 함께 한 프로젝트가 있음).
무엇이 이상한 문제 일 수 있습니까?
p.s. 아약스는 미래에이 필요할 수 있습니다 사람을위한 클래스의 일부 또는 아무것도
/**
* Get the price format depending on the currency position
*
* @return string
*/
function get_woocommerce_price_format()
{
$currency_pos = get_option('woocommerce_currency_pos');
switch ($currency_pos) {
case 'left' :
$format = '%1$s%2$s';
break;
case 'right' :
$format = '%2$s%1$s';
break;
case 'left_space' :
$format = '%1$s %2$s';
break;
case 'right_space' :
$format = '%2$s %1$s';
break;
}
//$format = '%2$s %1$s';
return apply_filters('woocommerce_price_format', $format, $currency_pos);
}
라이브에서 해당 문제를 볼 수 있습니까? –
(un) 다행히도 사이트가 아직 게시되지 않았습니다. – Richard
내가 볼 수있는 방법이 있습니까? –