Wishlist - Privacy Options - Remove select visibility and set the default wishlist to private
Let's proceed with removing "Wishlist visibiity" select
This will require to overwrite some templates from wishlist default folder: all you have to do is to copy the following files
wp-content/plugins/yith-woocommerce-wishlist-premium/templates/wishlist-manage.php
wp-content/plugins/yith-woocommerce-wishlist-premium/templates/wishlist-create.php
wp-content/plugins/yith-woocommerce-wishlist-premium/templates/add-to-wishlist-popup.php
And paste them under wp-content/themes/<your theme or child folder>/woocommerce/ (you may need to create WooCommerce subdirectory)
Then we need to make some changes to our brand new templates inside theme folder
1. wishlist-manage.php
Remove lines 52-67
<th class="wishlist-privacy">
<span class="nobr">
<?php
/**
* APPLY_FILTERS: yith_wcwl_wishlist_manage_privacy_heading
*
* Filter the heading of the column to show the Wishlist privacy in the Wishlists table.
*
* @param string $heading Heading text
*
* @return string
*/
echo esc_html( apply_filters( 'yith_wcwl_wishlist_manage_privacy_heading', __( 'Privacy', 'yith-woocommerce-wishlist' ) ) );
?>
</span>
</th>
198 to 204
<td class="wishlist-privacy">
<select name="wishlist_options[<?php echo esc_attr( $wishlist->get_id() ); ?>][wishlist_privacy]" class="wishlist-visibility selectBox">
<option value="0" class="public-visibility" <?php selected( $wishlist->get_privacy(), 0 ); ?> ><?php echo wp_kses_post( yith_wcwl_get_privacy_label( 0 ) ); ?></option>
<option value="1" class="shared-visibility" <?php selected( $wishlist->get_privacy(), 1 ); ?> ><?php echo wp_kses_post( yith_wcwl_get_privacy_label( 1 ) ); ?></option>
<option value="2" class="private-visibility" <?php selected( $wishlist->get_privacy(), 2 ); ?> ><?php echo wp_kses_post( yith_wcwl_get_privacy_label( 2 ) ); ?></option>
</select>
</td>
In addition also remove the lines 109-118 in the file wishlist-manage-modern.php
if using that layout or planning to. ( Note: Currently the plugin have two templates for the wishlist page and the user can decide which one to use )
The hook function that is posted in the article is to set the default wishlist to private when created, however to also set a new wishlist to private in case you are using the multiple wishlist per user, you have to use the following code too:
if ( ! function_exists( 'yith_wcwl_change_wishlist_visibility_private' ) ) {
function yith_wcwl_change_wishlist_visibility_private( $visibility ) {
$visibility = 2;
return $visibility;
}
add_filter( 'yith_wcwl_adding_to_wishlist_wishlist_visibility', 'yith_wcwl_change_wishlist_visibility_private' );
}
2. wishlist-create.php
Remove lines 32-45
<p class="form-row form-row-wide wishlist-privacy-radio">
<label>
<input type="radio" checked="checked" name="wishlist_visibility" class="wishlist-visiblity" value="0"/>
<?php echo wp_kses_post( yith_wcwl_get_privacy_label( 0, true ) ); ?>
</label>
<label>
<input type="radio" name="wishlist_visibility" class="wishlist-visiblity" value="1"/>
<?php echo wp_kses_post( yith_wcwl_get_privacy_label( 1, true ) ); ?>
</label>
<label>
<input type="radio" name="wishlist_visibility" class="wishlist-visiblity" value="2"/>
<?php echo wp_kses_post( yith_wcwl_get_privacy_label( 2, true ) ); ?>
</label>
</p>
3. add-to-wishlist-popup.php
Remove lines 181-194
<p class="form-row form-row-wide">
<label>
<input type="radio" name="wishlist_visibility" value="0" class="public-visibility wishlist-visibility" <?php checked( true ); ?> />
<?php echo wp_kses_post( yith_wcwl_get_privacy_label( 0, true ) ); ?>
</label>
<label>
<input type="radio" name="wishlist_visibility" value="1" class="shared-visibility wishlist-visibility"/>
<?php echo wp_kses_post( yith_wcwl_get_privacy_label( 1, true ) ); ?>
</label>
<label>
<input type="radio" name="wishlist_visibility" value="2" class="private-visibility wishlist-visibility"/>
<?php echo wp_kses_post( yith_wcwl_get_privacy_label( 2, true ) ); ?>
</label>
</p>
Now every "Wishlist Privacy" select should be removed from your site
Finally, we have to set default visibility as private by adding the following code snippet to the functions.php file of your active theme (wp-content/themes/<your theme or child folder>/functions.php):
if ( ! function_exists( 'yith_wcwl_set_default_wishlist_private' ) ) {
function yith_wcwl_set_default_wishlist_private( $privacy ) {
$privacy = 2;
return $privacy;
}
add_filter( 'yith_wcwl_default_wishlist_privacy', 'yith_wcwl_set_default_wishlist_private' );
}
And that's all