Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在没有库存的物品上添加自定义按钮?_Php_Wordpress_Woocommerce - Fatal编程技术网

Php 如何在没有库存的物品上添加自定义按钮?

Php 如何在没有库存的物品上添加自定义按钮?,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正在使用Wordpress和WooCommerce,如果我的商店中的某些产品缺货,我需要添加一个联系按钮,即: 如果库存为0,则显示联系人按钮 下图看起来更具体,我想将其插入其中: 我已经找到了如何添加按钮,但它已添加到所有产品中,我只想在我的任何产品没有库存时显示该按钮。 以下是使用的代码: add_action('woocommerce_after_add_to_cart_button', 'boton_subasta'); function boton_subasta(){

我正在使用
Wordpress
WooCommerce
,如果我的商店中的某些产品缺货,我需要添加一个联系按钮,即:

如果库存为0,则显示联系人按钮

下图看起来更具体,我想将其插入其中:

我已经找到了如何添加按钮,但它已添加到所有产品中,我只想在我的任何产品没有库存时显示该按钮。 以下是使用的代码:

add_action('woocommerce_after_add_to_cart_button', 'boton_subasta');
function boton_subasta(){
     global $product;
    if ( ! $product->is_in_stock()){

        echo '<button type="submit" class="button alt" onclick="window.location.href=http://http://138.197.9.71/prov-individuales/">contacto</button>';    
    }
}
add_action('u add_to_cart_按钮后的woocommerce_,'boton_substa');
函数boton_substa(){
全球$产品;
如果(!$product->库存中(){
回声“接触”;
}
}
您的
if
语句中缺少一个“'),这就是条件不起作用的原因

if ( ! $product->is_in_stock()){
  echo '<button type="submit" 
class="button alt" onclick="window.location.
href=http://http://138.197.9.71/prov-individuales/">contacto</button>';    
}
如果(!$product->库存中(){
回声“接触”;
}

只有当
$product->is\u in\u stock()
为true时,才会调用“添加到购物车”按钮后的操作
woocommerce\u。因此,如果$product->is\u in\u stock()为false,则不会调用此操作

换句话说,
添加到购物车
按钮仅在
$product->is_In_stock()为true时存在,如果产品
缺货
则根本不存在,因此之后没有添加按钮

您可能需要研究过滤器
woocommerce\u get\u stock\u html

但是,我不明白为什么会显示您的按钮。给定的代码不应显示该按钮。您确定问题中编写的代码正是您正在使用的代码吗?

已解决:

我已经找到了一个解决方案,感谢你们所有人,他们带领我走上了一条好的研究道路,请使用以下代码:

add_action( 'woocommerce_single_product_summary', 'boton_sub_producto_single', 6 );
function boton_sub_producto_single() {
        global $product;
            if ( ! $product->is_in_stock() || ! $product->is_purchasable() ){
                echo '<button type="submit" class="button alt" onclick="window.location.href=http://http://138.197.9.71/prov-individuales/">contacto</button>';
            }
            return $product;            
    }
add_action('woocommerce_single_product_summary','boton_sub_producto_single',6);
函数boton_sub_producto_single(){
全球$产品;
如果(!$product->库存中()。!$product->可购买()){
回声“接触”;
}
退回$product;
}

它对我有用。

谢谢,但我仍然没有继续使用代码,仍然没有显示按钮。您好,感谢您接受我将要调查的采访,如果它与我正在显示的代码相同,那么会发生的是我缺少一个“)”这就是为什么“联系人”按钮已显示,但现在不再显示,我将尝试使用
woocommerce\u get\u stock\u html