WooCommerce根据点击的按钮添加到购物车重定向

时间:2020-02-24 15:32:47

标签: php wordpress woocommerce

我想在产品页面上创建两个不同的购物车按钮。根据您单击的按钮,它必须重定向到购物车页面或商店(存档)页面。

在产品页面上,我创建了一些用户必须填写的其他自定义字段(项目数据),然后再将产品添加到购物袋中。使用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' );

但是,大问题是,按钮内不能有多个值(或名称)。因此上述功能将无法使用。有人有其他解决方案吗?有谁知道我如何创建具有不同重定向的辅助添加到购物车按钮?

谢谢!

1 个答案:

答案 0 :(得分:0)

基于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;

}}