В woocommerce как мне получить все варианты, такие как get_available_variations, но невидимые - PullRequest
1 голос
/ 05 февраля 2020

Я хочу получить все варианты в файле шаблона, включая скрытые варианты,

, например, $ 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;
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...