WooCommerce 함수 load_country_states()를 재정의하려고합니다. 내가 할 사용자 지정 WordPress 플러그인을 만들고 있어요. 나는 some answers에서 PHP에서 함수를 단순히 오버 라이딩 할 수 없다고 읽었습니다. 플러그인에서 WordPress theme/Plugin에 정의 된 함수를 다시 작성하는 가장 좋은 방법은 무엇입니까? 나는 this을 읽었다. WordPress의 함수 재정의
기능
은 수정 : 사실 당신은 단순히 기능을 재정의 할 수 없습니다/**
* Load the states.
*/
public function load_country_states() {
global $states;
// Load only the state files the shop owner wants/needs.
$allowed = array_merge($this->get_allowed_countries(), $this->get_shipping_countries());
if (! empty($allowed)) {
foreach ($allowed as $code => $country) {
if (! isset($states[ $code ]) && file_exists(WC()->plugin_path() . '/i18n/states/' . $code . '.php')) {
include(WC()->plugin_path() . '/i18n/states/' . $code . '.php');
}
}
}
$this->states = apply_filters('woocommerce_states', $states);
}
WordPress 필터는 무엇인가를 반환으로 기대한다는 점에 유의하십시오. (대신 후크에 대해서는 작업을 사용함). 여러분의 코드가 작동한다는 것을 알게되어 기쁩니다. 그러나 일반적으로 원래 클래스의'states' 속성은 아마도 올바른 값을받지 못할 것입니다;) 그 결과로 어떤 문제에 직면하면, 귀하의 함수에 매개 변수를 그것의 가치를 변경하지 않고 반환합니다. –