是否可以使用wordpress安装中未包含的wordpress用户角色限制对页面的访问。
例如,我安装了一个CS Cart,只安装了几个产品,但我需要限制某些用户访问这些页面。
如果用户只是一个订阅者,我可以在我的CS Cart安装中添加一些东西来调用Wordpress来限制访问吗?
是否可以使用wordpress安装中未包含的wordpress用户角色限制对页面的访问。
例如,我安装了一个CS Cart,只安装了几个产品,但我需要限制某些用户访问这些页面。
如果用户只是一个订阅者,我可以在我的CS Cart安装中添加一些东西来调用Wordpress来限制访问吗?
如果您可以包括wp-load.php
来自WP安装;之后,您可以使用所有WP核心功能,还可以使用核心功能检查用户及其权限-current_user_can()
.
但如果CS Cart有自己的用户表,那么可能更容易创建从CS Cart到WP的桥梁;我不知道。
这当然是可能的,但需要您稍微更改CS Cart。我对CS Cart的内部工作原理不太熟悉,从我对源代码的探索来看(他们实际上让你填写表单下载社区版,bleh),你可能想做这样的事情:
$current_working_directory = getcwd();
chdir( \'WORDPRESS_ROOT\' ); // load up
require_once \'wp-load.php\'; // possibly with SHORTINIT to reduce load
// include wp-includes/capabilities.php if SHORTINIT
// include wp-includes/user.php and other dependencies
$permission = current_user_can( \'browse_cs_cart_page\' );
chdir( $current_working_directory );
if ( !$permission ) {
die( \'You do not have permission to access this page. Please login in my WordPress site before you can proceed to here\' );
} else {
// show page
}
这可能是插件的一部分。现在current_user_can
将使用WordPress读取的Cookie,并与向用户发布的Cookie进行比较。没有像这样的插件Root Cookie WordPress将无法读取它(虽然,如果您说它位于同一根目录中,并且域相同,那么您应该能够在不处理Cookie的情况下完成它,浏览器应该将它们发送到WordPress和CS Cart,并使用您选择的调试工具进行检查)。
SHORTINIT
不是强制性的,但如果您担心性能,应该会稍微提高速度和内存消耗。
这一切都相当简单,只需在CS Cart端摆弄几个小时(编写插件,即)。其余的由WordPress负责。祝你好运,让我们知道进展如何。
进一步阅读:
不,这是不可能的,反正也不干净
有些乱七八糟的东西可以让你达到一半,但它们很难看,而且很琐碎,浪费时间,时间就是金钱。因此,如果没有真正实现目标,它将是不安全的,建设成本高昂,维护成本高昂。
您最好使用一款直接集成到WordPress中的软件,例如电子商务插件,其中大部分都是免费的,并具有许多功能,例如:
Jigoshop WooCommerce WP电子商务
如果你只需要限制到一个特定的WP页面(我想CS cart在其中嵌入了一个[短代码]或其他东西-我不知道CS cart),最好的方法是使用一个角色管理器插件。
这个-User Access Manager - 有点过时了,但它可以处理开箱即用的特定页面限制。查看(&P);看看是否合适。
Im使用get\\u users函数显示站点上的自定义用户列表。我现在唯一有问题的是如何对结果分页。这是Im使用的函数示例:似乎没有一种明显的方法可以为this函数创建分页。如果能帮上点忙,我将不胜感激。