我收到WordPress发来的关于致命错误的消息。它与WPML字符串翻译插件后端中的特定页面相关。我认为有一个特别的翻译:
访问发现错误的页面(xxxxxxxx/wp admin/admin.php?page=wpml translation management/menu/translations-queue.php)
它还说
错误详细信息===========在文件/nas/content/live/mywebsite/wp content/themes/babasouk/functions.php的第259行中导致了类型为E_Error的错误。错误消息:未捕获错误:在/nas/content/live/mywebsite/wp content/themes/myteme/functions.php:259堆栈跟踪:#0/nas/content/live/mywebsite/wp includes/class wp hook.php(303):bbloomer\u自定义获取可用性\u文本('100 in stock',null)
#1 /nas/content/live/mywebsite/wp-includes/plugin.php(189):WP_Hook-
#2/nas/content/live/mywebsite/wp content/plugins/woocommerce/includes/abstracts/abstract wc product.php(2082):应用过滤器('woocommerce_get…','100 in stock',对象(wc_product_Variation))
#3/nas/content/live/mywebsite/wp content/plugins/woocommerce/includes/abstracts/abstract wc product.php(2058):wc_产品-
#4 /nas/content/live/mywebsite/wp-content/plugins/woocommerce/includes/wc-template-functions.php(3512):WC_Product-
#5/nas/content/live/mywebsite/wp content/plugins/woocommerce/includes/class wc product variable.php(367):wc_get_stock_html(Object(W
在我的PHP中,我echo get_stock_quantity()并返回一个值。我还尝试了$product的echo并返回了所有内容。我禁用了它,因为它的信息太多。网站在这里。https://babasoukstage.wpengine.com/shop/product-category/decor/moroccan-kilim-pillows/
问题是否可能是我声明要转换的“”空值__(“巴巴索克”);
我的PHP是
function bbloomer_show_stock_shop() {
global $product;
echo wc_get_stock_html( $product );
}
// CHANGE STOCK MESSAGES
add_filter( 'woocommerce_get_availability_text', 'bbloomer_custom_get_availability_text', 99, 2 );
function bbloomer_custom_get_availability_text( $availability, $product ) {
global $product; // TO MAKE CATEGORY AVAILABLE
$stock = $product->get_stock_quantity(); //THIS IS LINE 259
//echo $product; does echo all product details when active
echo $stock;//test to see if stock quantity returned. Does display on category and product pages.
// OUTSIDE THE CATEGORY EXCLUSION SO THEY APPLY TO ALL
if ( !$product->is_in_stock() )$availability = __( 'Sorry, I am sold out!', 'babasouk' ); //OUT OF STOCK MESSAGE
if ( $product->is_in_stock() && ( $stock >= 2 ) )$availability = __( '', 'babasouk' ); //NO MESSAGE IF STOCK OVER 1
//EXCLUDE THESE CATEGORIES FOR 1 ITEM LEFT MESSAGE. IF THESE CATEGORIES MESSAGE IS BLANK.
if ( has_term( array( 'ORIGINAL ARTWORKS', 'OEUVRES ORIGINALES' ), 'product_cat' ) ) {
if ( $product->is_in_stock() && ( $stock == 1 ) )$availability = __( '', 'babasouk' ); //
} //IF NOT EXCLUDED CATEGORIES MESSAGE IS 'Only 1 Available!'
else if ( $product->is_in_stock() && ( $stock == 1 ) )$availability = __( 'Only 1 Available!', 'babasouk' );
return $availability;
}
您的代码中有一个错误,日志也会告诉您这个问题。由于您位于functions.php
文件中,因此没有可用的global$product
。因此,您将得到一个空指针,因为您将不使用任何内容覆盖可用的产品变量。当我查看您从中获取的页面上的代码片段时,也没有使用global$product
——只是想知道。。。
当您检查钩子时,您可以看到有产品已经传递给函数。只要使用它:
add_filter( 'woocommerce_get_availability_text', 'bbloomer_custom_get_availability_text', 99, 2 );
function bbloomer_custom_get_availability_text( $availability, WC_Product $product ) {
$stock = $product->get_stock_quantity(); //THIS IS LINE 259
//echo $product; does echo all product details when active
error_log( $stock );//test to see if stock quantity returned. Does display on category and product pages.
// OUTSIDE THE CATEGORY EXCLUSION SO THEY APPLY TO ALL
if ( $product->is_in_stock() ) {
if ( $stock > 1 ) {
$availability = __( '', 'babasouk' );
}
if ( $stock === 1 ) {
if ( has_term( [ 'ORIGINAL ARTWORKS', 'OEUVRES ORIGINALES' ], 'product_cat', $product ) ) {
$availability = __( '', 'babasouk' );
} else {
$availability = __( 'Only 1 Available!', 'babasouk' );
}
}
} else {
$availability = __( 'Sorry, I am sold out!', 'babasouk' );
}
return $availability;
}
我也对你的代码做了一些改进。最后,你的函数对我来说没有多大意义,但没关系——只是为了向你展示一种更好的嵌套方式和速度改进。如果只调用一次函数,而不是多次调用,则可以提高页面速度。
我正在尝试使用PHP在WooCommerce中创建一个自定义优惠券代码,它基本上会将购物车中标签名为“main”的每件商品的价格折扣到10。它通过计算购物车中标记为“main”的商品数量,然后计算每个商品的总价,并由此计算$折扣变量中所需的折扣。请参见下面的代码: 当我尝试激活此代码时,会收到以下错误消息: 您试图保存的代码段在第4行产生了致命错误: 未捕获错误:在/homepages/9/d39
我们一直很好地使用WooCommerce订阅,但是当从用户的“我的帐户”部分查看订单时,它开始引起问题,打开WP_DEBUG显示如下: 未捕获的错误:在/wp-content/plugins/woocommerce-subscriptions/includes/wcs-user-functions.php:381中调用bool中的成员函数get_user_id() 第381行是: 鉴于这是一个官方
这是三个文件 我得到一个错误“Fatal error:Uncattle error:Call to a member function prepare()on null”。这段代码运行在我的localhost上没有问题,但是当它上传到服务器时,我就出现了这个问题。我在本地使用PHP8和xammp软件。我是三年级学生,请帮帮我。 文件database.php: } 文件admin.php
问题内容: 我正在尝试检查注册中是否已使用电子邮件。当我在学校工作时,它运行良好,但现在突然显示出一个错误: 致命错误:在null上调用成员函数prepare() 我用这个包括 在这里 问题答案: 编辑:( 我想通了)。 我终于弄清楚了为什么您的代码无法正常工作,而我原来的答案已不再适用,我已将其剔除掉。 连接不起作用的原因是因为您从连接参数中省略了常量。 即使您可能没有设置密码,也仍然需要将其作
问题内容: 我不确定这里出了什么问题。我只是在线上学习教程,并且弹出了这些错误。 我收到以下错误 错误 码 问题答案: 首先,您在函数外声明了$ db。如果要在函数内部使用它,则应将其放在函数代码的开头: 我猜,当你写的时候: 您真正想要的是:
问题内容: 我正在尝试访问类别及其内容的列表。我有一堂课叫做分类。我不断收到此错误。奇怪的是,到目前为止,我已经在另外两个地方使用了相同的完全相同的代码,没有任何问题。我在这里所做的只是重用代码并更改所有变量。 这是我班上的代码: 这是我尝试调用的代码: 问题答案: 看来您的变量未初始化。在您上传的代码中,我看不到它的初始化位置。 确保在调用类方法之前在中创建了一个新的PDO对象。(由于应在Cat