Я хочу получить все варианты в файле шаблона, включая скрытые варианты,
, например, $ product-> get_available_variations
Я поместил в функцию темы следующее: php для расширения класс WC_Product_Variable.
Но когда я вызываю мою новую функцию $product->get_all_variations();
в моем шаблоне (single-product \ add-to-cart \ variable-subscription. php), это дает неопределенную ошибку метода.
Вызов $ product-> get_available_variations (); отлично работает.
Что я пропустил?
add_action( 'init', 'register_custom_variation' );
function register_custom_variation () {
class WC_Product_Variable_Extension extends WC_Product_Variable {
public function __construct( $product ) {
parent::__construct( $product );
}
public function get_all_variations() {
$variation_ids = $this->get_children();
$available_variations = array();
if ( is_callable( '_prime_post_caches' ) ) {
_prime_post_caches( $variation_ids );
}
foreach ( $variation_ids as $variation_id ) {
$variation = wc_get_product( $variation_id );
// Hide out of stock variations if 'Hide out of stock items from the catalog' is checked.
if ( ! $variation || ! $variation->exists() || ( 'yes' === get_option( 'woocommerce_hide_out_of_stock_items' ) && ! $variation->is_in_stock() ) ) {
continue;
}
$available_variations[] = $this->get_all_variation( $variation );
}
$available_variations = array_values( array_filter( $available_variations ) );
return $available_variations;
}
}
}