Add the following function into your (child) theme functions.php
if ( ! function_exists( 'ppwp_pro_generate_bypass_url' ) ) {
function ppwp_pro_generate_bypass_url( $post_id, $parameters = array() ) {
if ( ! function_exists( 'ppw_encrypt_decrypt' ) || ! method_exists( 'PPW_Pro_Repository', 'add_new_password' ) || ! function_exists( 'generate_pwd' ) || ! method_exists( 'PPW_Pro_Repository', 'add_new_password' ) || ! method_exists( 'PPW_Pro_Password_Services', 'get_expired_time_stamp' ) ) {
return false;
}
if ( ! $post_id ) {
return false;
}
$post_url = get_permalink( $post_id );
if ( ! $post_url ) {
return false;
}
$password = generate_pwd();
$ppwp_repo = new PPW_Pro_Repository();
$result = $ppwp_repo->add_new_password(
array(
'password' => $password,
'created_time' => time(),
'campaign_app_type' => 'Auto',
'usage_limit' => isset( $parameters['usage_limit'] ) ? $parameters['usage_limit'] : null,
'expired_date' => isset( $parameters['expired_date'] ) ? ( new PPW_Pro_Password_Services() )->get_expired_time_stamp( $parameters['expired_date'] ) : null,
'label' => isset( $parameters['label'] ) ? $parameters['label'] : '',
'post_id' => $post_id,
)
);
if ( ! $result ) {
return false;
} $token = ppw_encrypt_decrypt( 'encrypt', array( 'password' => $password ) );
if ( strpos( $post_url, '?' ) ) {
$bypass_url = $post_url . '&' . PPW_Pro_Constants::BYPASS_PARAM . '=' . $token;
} else {
$bypass_url = $post_url . '?' . PPW_Pro_Constants::BYPASS_PARAM . '=' . $token;
} return $bypass_url;
}
}
This is how you generate a bypass URL expiring in 1 day for post id 1963
ppwp_pro_generate_bypass_url( 1963, array('label' => 'test'; 'expired_date' => 1 ) )