This tutorial applies to users running bothĀ Job Manager ResumesĀ andĀ WC Paid ListingsĀ and lets you restrict access to the resumes portion of your site to users with an active job package only.
Configure Resume Access
The first step is to configure resumes for capability based access. Go toĀ Resumes > Settings > Resume VisibilityĀ and for each permission enter āhas_active_job_packageā.
Add a snippet
Use code snippet below into theme functions.php file, or even better, with a plugin such as Code Snippets.
// Hook into user_has_cap filter. This assumes you have setup resumes to require the capability 'has_active_job_package' add_filter( 'user_has_cap', 'has_active_job_package_capability_check', 10, 3 ); /** * has_active_job_package_capability_check() * * Filter on the current_user_can() function. * * @param array $allcaps All the capabilities of the user * @param array $cap [0] Required capability * @param array $args [0] Requested capability * [1] User ID * [2] Associated object ID */ function has_active_job_package_capability_check( $allcaps, $cap, $args ) { // Only interested in has_active_job_package if ( empty( $cap[0] ) || $cap[0] !== 'has_active_job_package' || ! function_exists( 'wc_paid_listings_get_user_packages' ) ) { return $allcaps; } $user_id = $args[1]; $packages = wc_paid_listings_get_user_packages( $user_id, 'job_listing' ); // Has active package if ( is_array( $packages ) && sizeof( $packages ) > 0 ) { $allcaps[ $cap[0] ] = true; } return $allcaps; }
What does it do? When WordPress checks if the user has the correct capability to view resumes, it checks the users packages. If they have a package, they are given the capability dynamically.