我正在使用插件强制登录:https://en-gb.wordpress.org/plugins/wp-force-login/,需要允许客人在购买后进入订单接收页面。
签出后,登录的用户将被转发到此页面:[mydomain]/checkout/order-received/[order_id]/?key=[order_key]。 我已经尝试过这个:在WooCommerce感谢页面上显示客户详细信息,即使没有注册,但在我添加后无法弄清楚该怎么做。
我目前有这个代码,它允许将某些页面列入白名单,以便未登录的用户可以绕过"强制登录"插件并为相关产品付费:
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
对于任何有这个问题的人来说,这就是我让它工作的方式。 由于生成的一些URL是动态的,因此我需要解决这些问题。 在函数中使用以下代码.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' );
WooCommerce 结账/订单收到问题
对于[mydomain]/checkout/order-received/[order_id]/?key=[order_key]的问题,它没有加载正确或没有显示某些内容或500内部服务器错误?
出于临时目的,因为每当插件更新时,文件都会在 woo-commerce 插件中更新?
- 打开文件齐拉
- The Visit :/var/www/html/wp-content/plugins/woocommerce/include directory
- 然后在目录中打开:class-wc-order.php
- 使用 ctrl+F 找到这个 : get_checkout_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 );
-
更改为(更新(在第二行添加注释:
$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 );
- 保存它并将其更新到服务器。
- 您的问题将得到解决,但这是暂时的,每当 woocommerce 插件更新时都会发生变化,因此您必须再次更新它。
谢谢!