47 lines
1.2 KiB
PHP
47 lines
1.2 KiB
PHP
<?php
|
|
/**
|
|
* /lib/compatibility/wp-members.php
|
|
*
|
|
* WP-Members compatibility features.
|
|
*
|
|
* @package Relevanssi
|
|
* @author Mikko Saari
|
|
* @license https://wordpress.org/about/gpl/ GNU General Public License
|
|
* @see https://www.relevanssi.com/
|
|
*/
|
|
|
|
add_filter( 'relevanssi_post_ok', 'relevanssi_wpmembers_compatibility', 10, 2 );
|
|
|
|
/**
|
|
* Checks whether the post type is blocked.
|
|
*
|
|
* Allows all logged-in users to see posts. For non-logged-in users, checks if
|
|
* the post is blocked by the _wpmem_block custom field, or if the post type is
|
|
* blocked in the $wpmem global.
|
|
*
|
|
* @param bool $post_ok Whether the user is allowed to see the post.
|
|
* @param int|string $post_id The post ID.
|
|
*
|
|
* @return bool
|
|
*/
|
|
function relevanssi_wpmembers_compatibility( bool $post_ok, $post_id ): bool {
|
|
global $wpmem;
|
|
|
|
if ( is_user_logged_in() ) {
|
|
return $post_ok;
|
|
}
|
|
|
|
$post_meta = get_post_meta( $post_id, '_wpmem_block', true );
|
|
$post_type = isset( $wpmem->block[ relevanssi_get_post_type( $post_id ) ] )
|
|
? $wpmem->block[ relevanssi_get_post_type( $post_id ) ]
|
|
: 0;
|
|
|
|
if ( '1' === $post_meta ) {
|
|
$post_ok = false;
|
|
} elseif ( '1' === $post_type && '0' !== $post_meta ) {
|
|
$post_ok = false;
|
|
}
|
|
|
|
return $post_ok;
|
|
}
|