gpt4 book ai didi

php - 缺货时的 WooCommerce "CONTACT"按钮

转载 作者:行者123 更新时间:2023-12-02 20:57:29 24 4
gpt4 key购买 nike

试图实现一些应该很简单的东西,但我尝试了 3 种具有多种代码变体的方法,但我就是无法使其工作。我正在尝试创建一个按钮,当该商品缺货时,该按钮将代替单个产品页面上的“添加到购物车”按钮。单击该按钮将触发弹出的联系表单。

在函数中创建添加操作是正确的方法吗,还是应该用 if 语句替换普通按钮?我已经尝试过这两种方法,因此我们将不胜感激任何编码方面的帮助。

最佳答案

您可以使用 functions.php 中的过滤器 Hook woocommerce_loop_add_to_cart_args,也可以通过将其拉入主题来直接编辑模板文件。无论哪种方式都需要一点 PHP。

如果在您的functions.php中执行此操作,它将看起来像这样(未经测试,但应该引导您走正确的路径):

<?php
add_filter( 'woocommerce_loop_add_to_cart_link', 'my_out_of_stock_button' );

function my_out_of_stock_button( $args ){
global $product;
if( $product && !$product->is_in_stock() ){
return '<a href="' . home_url( 'contact' ) . '">Contact us</a>';
}
return $args;
}

我不知道您的按钮代码实际上应该是什么样子,也不知道您需要捕获哪些其他信息,但这就是您可以覆盖“添加到购物车”按钮并在缺货时替换它的方法。

更新

LoicTheAztec 提出了一个很好的观点 - 提供的过滤器仅影响存档、类别、标签概述页面上的按钮 - 而不是单个产品页面。单个产品页面按钮没有 Hook ,但您可以 copy the templates to your theme and override them .

您需要查看 templates/single-product/add-to-cart 中的文件。使用与上面类似的 if 语句:

#simple.php
<?php if ( $product->is_in_stock() ) : ?>
// Standard WooCommerce code
<?php else: ?>
// Your button code
<?php endif; ?>

关于php - 缺货时的 WooCommerce "CONTACT"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39737090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com