当前位置: 首页 > 知识库问答 >
问题:

使用WooCommerce时出错-在$product上使用is_类型函数

郑嘉年
2023-03-14

我在使用WordPress、WooCommerce、Divi以及一个名为Divi Body Commerce的插件时遇到了som问题

当我创建一个变量产品并转到我的购物车时,出现了一个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函数时,会发生错误。

PHP Fatal error:  Uncaught Error: Call to a member function is_type() on null 

我不习惯WordPress和WooCommerce,所以如果有人能给我一个答案,那就太好了。

共有1个答案

郑胡媚
2023-03-14

您可以添加一个额外的检查,通常这将防止错误消息

global $product; 

if ( is_a( $product, 'WC_Product' ) ) {
    if ( $product->is_type( 'variable' ) ) {
        // Continue..
    }
}
 类似资料:
  • 我想添加一个元框到一个自定义的帖子类型,它的工作方式类似于Woocommerce使用的产品图库元框。我实际上在这个项目上安装了Woocommerce。 我找到了Woocommerce用来创建product gallery meta box的代码,我可以让meta box显示出来,但是jQuery没有用来拉出Wordpress用来添加图像的media lightbox。我不知道是否有一个钩子我需要添

  • cmake.不为我工作;事情就是这样 原木 RA141@RA141:~$cd~/Vulkan RA141@RA141:~/Vulkan$cd gl_vk_chopper RA141@RA141:~/Vulkan/gl_vk_chopper$cd build RA141@RA141:~/Vulkan/gl_vk_chopper/build$RM-RF./*RA141@RA141:~/Vulkan/g

  • 我有一行代码: 它接受一个变量,其类型应为float。当我使用type()测试变量类型时,它返回: 但是我一直收到一个错误,上面写着“/: str和int不支持的操作数类型”。

  • 我使用在fedora 26上安装了virtualen v 系统同时有python 2.7和python 3.6。 当我创建“virtualenv venv”时,我会得到这个输出和错误。 在/home/as raisingh/venv/bin/python 2中新建python可执行文件< br >同时在/home/as raisingh/venv/bin/python中创建可执行文件< br >安

  • 我正在阅读有关C中线程的教程并测试了以下代码: 我试图使用gcc和g编译此代码,但我总是遇到编译错误。 使用gcc-pthread thread_test.c: /tmp/ccmpQLyp。o: 在函数std::cout'thread_test.cpp: 你能帮忙吗?我必须做些什么才能让这段代码在Linux和Windows上运行吗?

  • 我已经按照这里描述的“测试Spring MVC切片”一节为Spring MVC控制器编写了一个测试类。类如下所示: 当我运行它时,我得到了以下错误: 有人能解释为什么@webmvctest注释对我不起作用吗?