php ошибка - использование woocommerce - использование функции is_type в $ product - PullRequest
1 голос
/ 08 мая 2020

Я столкнулся с сомнительной проблемой при использовании wordpress, woocommerce, divi и, в частности, плагина Divi Body Commerce

Когда я создаю переменный продукт и go в свою корзину, у меня появляется ошибка php. Это не мой код, но мне нужно его исправить.

Вот начало кода:

<?php
if( ! defined( 'ABSPATH' ) ) exit;

$mydata = get_option( 'divi-bodyshop-woo_options' );

$mydata = unserialize($mydata);

if(isset($mydata['variation_striketrhough'][0])) {

     $variation_striketrhough = $mydata['variation_striketrhough'][0];
}
else{
    $variation_striketrhough = "0";
}
if ($variation_striketrhough == 1) {
    if ( ! is_admin() ) {

        function wcbv_variation_is_active( $active, $variation ) {
            if( ! $variation->is_in_stock() ) {
                return false;
            }
            return $active;
        }
        add_filter( 'woocommerce_variation_is_active', 'wcbv_variation_is_active', 10, 2 );
        add_filter( 'woocommerce_variation_option_name', 'customizing_variations_terms_name', 10, 1 );
        function customizing_variations_terms_name( $term_name ){

            global $product; 
            if( $product->is_type( 'variable' ) || $product->is_type( 'subscription-variation' ) ) {
                 /*...........*/
            }
        }
    }
}

?> Ошибка возникает, когда я вызываю функцию is_type для переменной product. PHP Неустранимая ошибка: Неперехваченная ошибка: вызов функции-члена is_type () на null

Я не привык к wordpress и woocommerce, поэтому, если у кого-то есть ответ для меня, это будет здорово.

Спасибо

1 Ответ

1 голос
/ 08 мая 2020

Вы можете добавить дополнительную проверку, обычно это предотвращает появление сообщения об ошибке

global $product; 

if ( is_a( $product, 'WC_Product' ) ) {
    if( $product->is_type( 'variable' ) ) {
        // Continue..
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...