Requirements:
- Password Protect WordPress Lite version 1.2.3 or greater
- Password Protect WordPress Pro version 1.1.6 or greater
Once a WooCommerce product page is password protected with our PPWP Pro plugin, the whole page will be hidden under a password form by default.
If you want to hide the Add to Cart button only, simply add the following code snippet to your (child) theme’s functions.php file.
/* * * Hide Add to Cart on all password protected pages. */ function ppwp_replace_add_to_card() { echo get_the_password_form(); } add_filter( 'post_password_required', function ( $required, $post ) { global $post; if ( ! $post->ID ) { return $required; } if ( ! function_exists( 'is_product' ) ) { return $required; } if ( $required && is_product() ) { add_filter( 'woocommerce_is_purchasable', '__return_false' ); add_action( 'woocommerce_simple_add_to_cart', 'ppwp_replace_add_to_card' ); add_action( 'woocommerce_grouped_add_to_cart', 'ppwp_replace_add_to_card' ); add_action( 'woocommerce_variable_add_to_cart', 'ppwp_replace_add_to_card' ); add_filter( 'woocommerce_available_variation', function () { return []; } ); add_filter( 'woocommerce_out_of_stock_message', function () { return ''; } ); return false; } return $required; }, 200, 2 );
Your WooCommerce product page will display as below:
Hide Add to Cart button on certain pages only
Use the following code snippet if you want to hide this button on specific password protected WooCommerce product pages only.
/* * * Hide Add to Cart on certain pages only, e.g. post_id=44 & 45 */ function ppwp_replace_add_to_card() { echo get_the_password_form(); } add_filter( 'post_password_required', function ($required, $post) { global $post; if (!$post->ID) { return $required; } if (!function_exists('is_product')) { return $required; } $posts_included = [44,45]; // replace the IDs accordingly if (!in_array($post->ID, $posts_included)) { return $required; } if ( $required && is_product() ) { add_filter( 'woocommerce_is_purchasable', '__return_false' ); add_action( 'woocommerce_simple_add_to_cart', 'ppwp_replace_add_to_card' ); add_action( 'woocommerce_grouped_add_to_cart', 'ppwp_replace_add_to_card' ); add_action( 'woocommerce_variable_add_to_cart', 'ppwp_replace_add_to_card' ); add_filter( 'woocommerce_available_variation', function () { return []; } ); add_filter( 'woocommerce_out_of_stock_message', function () { return ''; } ); return false; } return $required; }, 200, 2 );
Get the post ID by hovering over the desired post title.