WooCommerce联属销售动态子域名,但没有多站点。这有可能吗?

时间:2020-07-24 作者:Andy

我有一个woocommerce装置,可以卖东西。我们想让附属公司使用自己的url(即mysite)来销售我们的产品。基地。com。基本上,它的工作方式是访问者点击上面的url,我编写了一个插件来提取;“我的网站”;段,对API进行API调用以获取分支机构信息,然后使用该信息自定义标头中的某些内容,设置cookie/session对象,稍后用于在woocommerce订单中存储分支机构信息。当我将url段硬编码到插件中时,以上所有功能都能正常工作。

我的问题是让wordpress在整个会话期间维护url中的子域。首先,如果我访问我的网站。基地。com,它会立即将我转发到基站。com。不知道为什么。其次,wordpress中的所有URL都是绝对的,我想我可以访问,但仍然很烦人。第三,所有来自该网站的电子邮件(尤其是订单和诸如此类的邮件)都将有来自基本网站的链接。com而不是mysite。B基地。com。我可能也能解决这个问题,但我想知道我是不是找错人了。

我不反对使用多站点,但我认为这行不通,因为每个站点的所有内容(产品、主题、插件、内容)都是相同的,可能有数千个分支机构,因此可能有数千个子域。我开始认为这是woocommerce和wordpress不可能做到的事情。

1 个回复
SO网友:mozboz

这尽可能/不可能,因为你有时间/预算。在我看来,这似乎是可以实现的,因为我假设你是一个营利组织,这在某种程度上为你创造了收入,但你可能会在某个时候入侵一些Wordpress内部。

这是一个广泛而主观的问题,它并不适合这个stackexchange,但下面的几个想法并不是“解决方案”,只是值得考虑的事情。

1-使用URL重写使子域成为传递给单个域的参数,例如,使用下面的mod\\u重写规则,摘自[此处][1],您可以通过将子域转换为可以在代码中轻松使用的参数来解决一些问题。

下面的htaccess(或类似的东西)假设您实际上只有一个网站,例如。domain.com 以及访问affiliate123.example.com/foo/bar.php 在服务器上实际显示为example.com/foo/bar.php?sub=affiliate123.

如果您确保站点上的所有URL都是相对于域呈现的(即您的URL是\'/foo/bar/baz.jpg\' 而不是\'https://www.example.com/foo/bar/baz.jpg\') 然后浏览器会将它们视为当前域中的URL,而您需要担心的事情就少多了。

然后,您需要进行一些编码,以便能够在URL中映射此参数,该参数为您提供查找主题组件的子域,等等。

这可能有各种各样的问题,你必须弄清楚,比如如果插件干扰了你的sub URL参数或其他URL构造角案例。

RewriteEngine on
RewriteCond %{QUERY_STRING} !^sub=
RewriteCond %{HTTP_HOST} ^(?!www\\.)(.+)\\.domain\\.com$
RewriteRule ^(/?)$ $1?sub=%1
当分支机构想要在其页面上发布某些内容时,你会怎么做?我突然想到,分支机构或您组织中的某个人很可能有这样的要求,即他们希望某个分支机构的特定内容只发布在该分支机构的页面上。我建议你要么现在就考虑到这一点,要么明确表示这是不可能的。如果这是未来可能的需求,那么多站点可能会成为更好的选择,因为它能够允许每个分支机构管理自己的内容。

3管理工具看起来您确实需要研究管理工具,这些工具可以让您从中央“控制面板”或您编写的一组脚本中管理大量类似的站点。有一些带有插件的工具可以让您从一个仪表板管理多个站点。这可以满足您的许多需求。(在我起草此答案时,@TonyDjukic也提到了这一点)

希望这些能帮助你找到前进的方向。[1] :https://stackoverflow.com/questions/42263265/how-to-rewrite-subdomain-and-subsubdomain-into-a-parameter

相关推荐

本地WordPress MultiSite在AWS开发服务器上不工作“建立数据库连接时出错”

我在本地mac上使用mamp安装了composer WP starter。它按预期工作。我正在使用phpdotenv隐藏我的wp配置。php设置和我将wordpress目录移动到文档根目录下的子目录中。我在本地mac dev2上使用虚拟主机。域名。com。我使用wp db migrate pro查找dev2并将其替换为dev3作为域名。com在本地和AWS上是相同的。唯一的其他区别是数据库连接设置。我知道数据库连接设置是正确的,因为我在运行composer并使用wp cli安装wp的shell脚本中使用了