前言
当客人在wordpress网站,购买完成产品后需要跳转到制作的感谢页面,因为要统计感谢页面,访问的次数,从而得知大概的产品销量,以及广告是否 值得投入,总之就是感谢页面不能直接通过url地址来进行访问只能,刚刚购买完成产品才会自动跳转到感谢页面
下面是问题解决办法
将下面的代码添加到主题的function.php文件当中
add_action( 'template_redirect', 'restrict_thankyou_page_access' );
function restrict_thankyou_page_access() {
// 获取感谢页面的ID(这里填写你自己的感谢页面的id,可以到后台去看)
$thankyou_page_id = 454565;
// 检查当前访问的页面是否为感谢页面
if ( is_page( $thankyou_page_id ) ) {
// 获取最新的订单
$orders = wc_get_orders( array(
'limit' => 1,
'orderby' => 'date',
'order' => 'DESC',
'customer' => get_current_user_id(),
) );
// 检查是否存在订单
if ( !empty( $orders ) ) {
// 获取最新的订单
$latest_order = reset( $orders );
// 检查订单状态和用户信息是否表示刚刚购买了产品(判断是不是最新购买的)
if ( $latest_order->has_status( array( 'processing', 'on-hold' ) ) ) {
// 用户刚刚购买了产品,继续执行后续操作
// 如果购买成功,则允许访问感谢页面
return;
} else {
// 用户未刚刚购买产品,则重定向到首页或其他页面
wp_redirect( home_url() );
exit;
}
} else {
// 用户没有订单,则重定向到首页或其他页面
wp_redirect( home_url() );
exit;
}
}
}
逻辑介绍
首先判断是不是访问的是感谢页面,然后获取最新的订单信息,判断用户是否存在订单,如果不存在那么感谢页面不让访问,重定向到首页,然后判断订单的状态,是不是刚刚购买的订单,如果是那么跳转到感谢页面,否则从定向到首页