【发布时间】:2020-06-08 06:37:21
【问题描述】:
我想在产品页面上创建两个不同的添加到购物车按钮。根据您单击的按钮,它必须重定向到购物车页面或商店(存档)页面。
在产品页面上,我创建了一些额外的自定义字段(商品数据),用户必须在将产品添加到他们的购物袋之前填写这些字段。使用woocommerce_add_to_cart_redirect 钩子将您的客户重定向到您想要的页面有多种解释,但我想根据您单击的按钮对其进行一些自定义。
我在产品页面的添加到购物车表单中添加了第二个提交按钮。这些按钮在表单内,否则自定义字段将不会验证并且产品不会添加到购物车。网上有多种解释和钩子可以在您的产品页面上创建额外的“添加到购物车”按钮,但由于需要进行验证,这些都不起作用。
<button type="submit" name="add-to-cart" value="overview <?php echo esc_attr( $product->get_id() ); ?>" class="c-link"><?php _e('Save and go to shop', 'stackoverflowcom'); ?></button>
<button type="submit" name="add-to-cart" value="<?php echo esc_attr( $product->get_id() ); ?>" class="c-btn --gold single_add_to_cart_button button alt"><?php _e('Go to shopping bag', 'stackoverflowcom'); ?></button>
第二步是我为woocommerce_add_to_cart_redirect 钩子创建了一个函数,用于检查被点击的按钮。
function custom_add_to_cart_redirect( $url ) {
if ($_POST['add-to-cart'] == 'overview') {
$url = get_permalink( 17 );
return $url;
} else {
$url = get_permalink( wc_get_page_id( 'cart' ));
return $url;
}} add_filter( 'woocommerce_add_to_cart_redirect', 'custom_add_to_cart_redirect' );
但是,大问题是,您的按钮内不能有多个值(或名称)。所以上面的功能不起作用。有没有人有其他解决方案?有谁知道我可以如何创建具有不同重定向的辅助添加到购物车按钮?
提前致谢!
【问题讨论】:
-
“但是大问题,你的按钮内不能有多个值(或名称)。” - 你可以制作一个值多个,例如通过将它们编码为 JSON - 但如果 WP 期望仅通过这些按钮发送帖子 ID,那么这可能在接收端不起作用。可能更有意义,如果您在表单中添加了一个隐藏的输入字段,然后在单击特定按钮时通过 JS 填充值
overview(或您可能需要发送的任何其他值)......这样您然后可以在服务器端单独访问该隐藏字段的值。
标签: php wordpress woocommerce