首页 > 解决方案 > 在“选择选项”按钮上显示一个弹出窗口 - Woocommere

问题描述

我有披萨订购 WP Page。我有披萨类产品,它们是“简单产品”,并使用 Gravity Form Addon 让用户添加额外的配料。因此,从字面上看,在商店页面中的每个比萨产品下方都有一个名为“选择选项”的按钮。当我点击它时,它会重定向到特定的产品页面,用户可以在其中选择尺寸和附加功能。由于需要很多步骤,我想在同一个 Shop 页面中执行上述操作,而无需进入 Product 页面。因此,我想在用户单击“选择选项”按钮时弹出一个弹出窗口,该弹出窗口中将包含重力形式,因此用户可以在弹出窗口中选择比萨饼的大小和其他内容并提交到购物车。

我尝试了很多方法:首先我尝试使用 Css 中的钩子“woocommerce_loop_add_to_cart_link”隐藏“选择选项”按钮 这里我不能只为披萨类别产品隐藏它。

然后我尝试了下面的代码片段(在 Internet 中找到)来隐藏按钮:

add_action('wp', 'remove_add_to_cart_product_categories' );
 
function remove_add_to_cart_product_categories(){
    if( is_product_category( 'pizza' ) ) {
        remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
    }
}

但是没有任何效果......

建议将不胜感激...

标签: phpcsswordpresswoocommerceproduct

解决方案


乍一看,这里的问题是重定向,你想要的是不可能的......我认为......

你是什​​么意思:

我尝试了很多方法:首先我尝试使用 Css 中的钩子“woocommerce_loop_add_to_cart_link”隐藏“选择选项”按钮 这里我不能只为披萨类别产品隐藏它。

你为什么要隐藏它?用户就没有选择的可能了吗?

我还建议您使用网站链接编辑您的问题,因为目前没有足够的详细信息可供任何人帮助...

编辑1:在旁注中,另一种选择可能是拥有一个名为“额外浇头”的新产品类别并将其显示在比萨产品页面上(这将更容易实施或至少可能)。

用户将能够从同一页面将披萨和浇头添加到购物车。

这只是一个通过产品类别的简单循环,并在产品名称下方设计一个带有添加到购物车按钮的产品模板(我什至很确定您的主题已经是这样的模板)。

编辑 2:按照我的想法,如果您选择使用它:

1_创建一个名为“toppings”的产品类别。

2_将您的浇头添加为浇头类别下的产品

3_将以下代码粘贴到您希望浇头显示的任何位置(可能作为产品页面上的交叉销售项目)

<!-- Start loop here -->
<?php $query = new wp_query( array(
'post_type'         => 'product', // default post type for products in woocomerce is 'product'
'post_status'       => 'publish', // only published products
'posts_per_page'    => '-1', // -1 display all products
'tax_query'         => array( array(
'taxonomy'          => 'product_cat', // default custom taxonomy name for products in woocomerce is 'product_cat'
'field'             => 'slug',  // fetching category terms by slug
'terms'             => 'toppings' // your toppings category slug
), ),
) ); ?>
<?php if ( $query->have_posts() ): while ( $query->have_posts() ): $query->the_post(); ?>
<!-- Start product template here -->
<div style="
padding: 15px;
border: 1px solid;">
<h5><?php the_title(); ?></h5>
<a href="<?php $add_to_cart = do_shortcode('[add_to_cart_url id="'.$post->ID.'"]'); // By using the shortcode we prevent the redirect to cart page onclick... I think... Not sure
echo $add_to_cart; ?>" style="
display: block;
border-radius: .3em;
background-color: #eee;">
Add to cart - <?php echo $product = wc_get_product( $post_id ); $product->get_price(); ?></a>
</div>
<!-- End product template here -->
<?php endwhile; endif; wp_reset_query(); ?>
<!-- End loop here -->

我无法最终测试它,但它应该可以工作。如果这项工作,如果你愿意,我们可以在之后将其设为模态。

如果您也有不同种类的产品,并且您不想为他们展示浇头,我们也可以这样做。(例如:不想在单个饮料页面或单个甜点页面上显示浇头)


推荐阅读