【问题标题】:WooCommerce add to cart redirect based on button clickedWooCommerce 根据单击的按钮添加到购物车重定向
【发布时间】: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


【解决方案1】:

我的解决方案基于 CBroe 所说的,我创建了一个 javascript 函数:

<script>
    function overviewClick() {
        document.getElementById('overview').value="overview"
        document.getElementById('cart').submit();
    }
</script>

创建了一个名为“overview”的隐藏输入字段。然后我创建了一个 PHP 函数来检查输入字段是否为空:

function custom_add_to_cart_redirect( $url ) {

if( ! empty( $_POST['overview'] ) ) {

    $url = get_permalink( 17 );
    return $url;

} else {

    $url = get_permalink( wc_get_page_id( 'cart' ));
    return $url;

}}

【讨论】:

    猜你喜欢
    • 2014-06-01
    • 2013-03-13
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 2018-09-10
    • 2018-05-08
    相关资源
    最近更新 更多