我正在使用插件强制登录:https://en-gb.wordpress.org/plugins/wp-force-login/,并且需要允许访客购买后进入订购页面。
签出后,已登录的用户将被转发到此页面:[mydomain] /签出/接收到订单/ [order_id] /?key = [order_key]。我已经尝试过此操作:Show customer details on WooCommerce Thankyou page even if not registered,但是在添加后无法弄清楚该怎么做。
我目前拥有此代码,该代码允许将某些页面列入白名单,以便未登录的用户可以跳过“强制登录”插件并为相关产品付费:
add_filter('v_forcelogin_whitelist', 'my_forcelogin_whitelist', 10, 1);
function my_forcelogin_whitelist() {
return array(
home_url( '/cart/' ),
home_url( '/checkout/' ),
home_url( '/cart/?add-to-cart=1465' ),
);
}
我希望没有登录的用户被转发到结帐后如下所示的页面:
[mydomain] / checkout / order-received / 5304 /?key = wc_order_5cffcfbc96028
答案 0 :(得分:1)
对于任何有此问题的人,这就是我的工作方式。由于生成的某些URL是动态的,因此我需要解决这些问题。在function.php中使用以下代码适用于woocommerce关联的所有URL:
function my_forcelogin_bypass( $bypass ) {
if ( class_exists( 'WooCommerce' ) ) {
if ( is_woocommerce() || is_wc_endpoint_url() ) {
$bypass = true;
}
}
return $bypass;
}
add_filter( 'v_forcelogin_bypass', 'my_forcelogin_bypass' );
答案 1 :(得分:0)
对于[mydomain] /结帐/收到订单/ [order_id] /?key = [order_key]的问题,它未正确加载或未显示任何内容或500 Internal Server Error?
出于临时目的,因为无论何时将更新插件,文件都会在woo-commerce插件中更新?
将有两行代码(更早):
$order_received_url = wc_get_endpoint_url( 'order-received', $this->get_id(), wc_get_checkout_url() );
$order_received_url = add_query_arg( 'key', $this->get_order_key(), $order_received_url );
更改为(已更新)在第二行添加评论:
$order_received_url = wc_get_endpoint_url( 'order-received', $this->get_id(), wc_get_checkout_url() );
//$order_received_url = add_query_arg( 'key', $this->get_order_key(), $order_received_url );
谢谢!