自定义插件问题-注意:正在尝试获取非对象的属性

时间:2018-09-14 作者:Rob D. A.

在我的插件中,使用woocommerce函数配置一些基本值,该函数正在创建一个选择字段,但由于某种原因,它会生成此错误:“注意:尝试在/var/www/html/wp-content/plugins/woocommerce/includes/admin/wc-meta-box-functions.php的第192行获取非对象的属性”

它可以工作,但屏幕上的错误信息让我抓狂。我可以更改值并保存,除了消息之外,一切都很好。

function spinna360_nof($noi) {

woocommerce_wp_select( 
    array(
        \'id\'        => \'_select_noi\',
        \'label\'     => __( \'Select number of images: \', \'spinna360\' ),
        \'selected\'  => true,
        \'value\'     =>  $noi,
        \'options\'   => [
            \'24\'        => __( \'24\', \'spinna360\' ),
            \'36\'        => __( \'36\', \'spinna360\' ),
            \'48\'        => __( \'48\', \'spinna360\' )
            ]
        )
    );
}
为什么?问题是什么?

1 个回复
SO网友:Andrea Somovigo

<罢工>尝试使用global $post; 在功能开始时

请注意,您必须在特定的挂钩上运行才能工作。请参阅此帖子:https://www.ibenic.com/how-to-add-woocommerce-custom-product-fields/

function spinna360_nof() {
$noy=array(
    \'id\'        => \'_select_noi\',
    \'label\'     => __( \'Select number of images: \', \'spinna360\' ),
    \'selected\'  => true,
    \'options\'   => [
        \'24\'        => __( \'24\', \'spinna360\' ),
        \'36\'        => __( \'36\', \'spinna360\' ),
        \'48\'        => __( \'48\', \'spinna360\' )
        ]
);
woocommerce_wp_select($noy);   
}
add_action( \'woocommerce_product_data_panels\', \'spinna360_nof\');

结束