php - 在“选择选项”按钮上显示一个弹出窗口 - 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');
}
}
但是没有任何效果......
建议将不胜感激...
解决方案
乍一看,这里的问题是重定向,你想要的是不可能的......我认为......
你是什么意思:
我尝试了很多方法:首先我尝试使用 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 -->
我无法最终测试它,但它应该可以工作。如果这项工作,如果你愿意,我们可以在之后将其设为模态。
如果您也有不同种类的产品,并且您不想为他们展示浇头,我们也可以这样做。(例如:不想在单个饮料页面或单个甜点页面上显示浇头)
推荐阅读
- javascript - Discord-api“PATCH Modify Guild Member”没有做任何改变,当我用谷歌脚本制作补丁时:“UrlFetchApp.fetch()”
- flutter - 在外部单击时如何关闭警报对话框
- c# - 当我需要进行身份验证时如何使用 httpwebrequest POST 并且在 curl 中身份验证是使用“用户名:pass@website.com”完成的?
- java - Couchbase 的 Spring Data - 增加特殊计数器文档的数值
- asp.net-mvc - 以当前时间指示器为中心的 dxScheduler 时间线视图
- javascript - 使用与 redux 反应的 api 调用队列?
- machine-learning - 学习率和梯度下降的区别?
- sql - 如何运行我的 SQL,以获得诸如“John Doe,plumbing”之类的结果
- hyperledger-fabric - 启用 TLS 的 Hyperledger Fabric
- compute-shader - 将图像数组传递给计算着色器