如何使用强制登录插件在wordpress中将接收订单的页面列入白名单

时间:2019-06-11 16:16:13

标签: php wordpress woocommerce

我正在使用插件强制登录: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

2 个答案:

答案 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)

WooCommerce结帐/订单接收问题

对于[mydomain] /结帐/收到订单/ [order_id] /?key = [order_key]的问题,它未正确加载或未显示任何内容或500 Internal Server Error?

出于临时目的,因为无论何时将更新插件,文件都会在woo-commerce插件中更新?

  1. 打开文件Zilla
  2. 访问:/ var / www / html / wp-content / plugins / woocommerce / includes目录
  3. 然后在打开的目录中:class-wc-order.php
  4. 使用ctrl + F查找:get_checkout_order_received_url()
  5. 将有两行代码(更早):

    $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 );
    
  6. 更改为(已更新)在第二行添加评论:

    $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 );
    
  7. 保存并更新到服务器。
  8. 您的问题将得到解决,但这是临时的,每当woocommerce插件更新时,它都会更改,因此您必须再次进行更新。

谢谢!