skip to Main Content

Maybe a crazy question, but I need to put below code in echo and I am getting an error. Basically I want to hide add to cart section from not logged in users and show them different content/button

This whole code

<div class="woocommerce-variation-add-to-cart variations_button">
    <?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>

    <?php
    do_action( 'woocommerce_before_add_to_cart_quantity' );

    woocommerce_quantity_input(
        array(
            'min_value'   => apply_filters( 'woocommerce_quantity_input_min', $product->get_min_purchase_quantity(), $product ),
            'max_value'   => apply_filters( 'woocommerce_quantity_input_max', $product->get_max_purchase_quantity(), $product ),
            'input_value' => isset( $_POST['quantity'] ) ? wc_stock_amount( wp_unslash( $_POST['quantity'] ) ) : $product->get_min_purchase_quantity(), // WPCS: CSRF ok, input var ok.
        )
    );

    do_action( 'woocommerce_after_add_to_cart_quantity' );
    ?>

    <button type="submit" class="single_add_to_cart_button button alt"><?php echo esc_html( $product->single_add_to_cart_text() ); ?></button>

    <?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>

    <input type="hidden" name="add-to-cart" value="<?php echo absint( $product->get_id() ); ?>" />
    <input type="hidden" name="product_id" value="<?php echo absint( $product->get_id() ); ?>" />
    <input type="hidden" name="variation_id" class="variation_id" value="0" />
</div>

in here

<?php
if ( is_user_logged_in() ) {
    echo 'THAT CODE SHOULD GO HERE';
} else {
    echo 'Welcome, visitor!';
}
?>

2

Answers


  1. You can do :

        <?php
        if ( is_user_logged_in() ) {
        ?>
           <div class="woocommerce-variation-add-to-cart variations_button">
            <?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>
    
            <?php
            do_action( 'woocommerce_before_add_to_cart_quantity' );
    
            woocommerce_quantity_input(
                array(
                    'min_value'   => apply_filters( 'woocommerce_quantity_input_min', $product->get_min_purchase_quantity(), $product ),
                    'max_value'   => apply_filters( 'woocommerce_quantity_input_max', $product->get_max_purchase_quantity(), $product ),
                    'input_value' => isset( $_POST['quantity'] ) ? wc_stock_amount( wp_unslash( $_POST['quantity'] ) ) : $product->get_min_purchase_quantity(), // WPCS: CSRF ok, input var ok.
                )
            );
    
            do_action( 'woocommerce_after_add_to_cart_quantity' );
            ?>
    
            <button type="submit" class="single_add_to_cart_button button alt"><?php echo esc_html( $product->single_add_to_cart_text() ); ?></button>
    
            <?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>
    
            <input type="hidden" name="add-to-cart" value="<?php echo absint( $product->get_id() ); ?>" />
            <input type="hidden" name="product_id" value="<?php echo absint( $product->get_id() ); ?>" />
            <input type="hidden" name="variation_id" class="variation_id" value="0" />
        </div>
    
    <?php
    
        } else {
            echo 'Welcome, visitor!';
        }
    ?>
    
    Login or Signup to reply.
  2. Please, you should be able to do this yourself. But here it is:

    <?php
    if(is_user_logged_in()){
        echo "<div class='woocommerce-variation-add-to-cart variations_button'>";
        do_action( 'woocommerce_before_add_to_cart_button' );
        do_action( 'woocommerce_before_add_to_cart_quantity' );
        woocommerce_quantity_input(
            array(
                'min_value'   => apply_filters( 'woocommerce_quantity_input_min', $product->get_min_purchase_quantity(), $product ),
                'max_value'   => apply_filters( 'woocommerce_quantity_input_max', $product->get_max_purchase_quantity(), $product ),
                'input_value' => isset( $_POST['quantity'] ) ? wc_stock_amount( wp_unslash( $_POST['quantity'] ) ) : $product->get_min_purchase_quantity(), // WPCS: CSRF ok, input var ok.
            )
        );
        do_action( 'woocommerce_after_add_to_cart_quantity' );
        echo "<button type='submit' class='single_add_to_cart_button button alt'>".echo esc_html( $product->single_add_to_cart_text() );."</button>";
        do_action( 'woocommerce_after_add_to_cart_button' );
        echo "<input type='hidden' name='add-to-cart' value='".echo absint( $product->get_id() );."' />
        <input type='hidden' name='product_id' value='".echo absint( $product->get_id() );."' />
        <input type='hidden' name='variation_id' class='variation_id' value='0' />
        </div>
        }";
    } else {
        echo 'Welcome, visitor!';
    }
    ?>
    

    Although the other answer by Jonathan is better.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search