【发布时间】:2023-03-06 20:13:01
【问题描述】:
我要做的是将网站上的用户名注入 WHMCS。该网站未与 WHMCS 集成。 WHMCS 安装在我网站的子目录中。
网站目录结构如下:
mywebsite.com
whmcs_directory
mywebsite.com 是一个有会员的网站。它不是 wordpress,它是一个自定义的 php 站点。
whmcs 目录安装为我网站的子目录(在网站根目录内的文件夹中)。
我在 WHMCS 中创建了一个名为“用户名”的自定义字段。
然后我编写了 javascript 来注入和填充用户名字段。我在viewcart.php 中让那部分工作正常。我所说的“工作正常”的意思是,我可以手动定义任何值,如“myvalue”,并使用 javascript 包含它:
<script>
$('document').ready(function () {
$('#customfield1').val('myvalue')
})
</script>
我在 viewcart.php 中包含了那个 javascript。它将myvalue 注入到输入字段中。但是,我不能在那里放任何真正的php,显然每个人的用户名都不是“myvalue”。我需要从 whmcs 外部获取一个动态 php 变量。
================================================ =============
现在,我可以使用名为 test.php 的原始 php 文件来获取我自己的代码。我可以轻松地将站点中的用户名注入到原始 php 文件的输入字段中。
我通过简单地包含标题、下面的“获取用户 ID”代码、编写一些简短的 php 来调用它,然后通过 javascript 将其注入到输入字段中来做到这一点。超级简单。
<?php
//get the header
require_once('theheader.php');
// get the user id
$theuser = GetTheUser::loadUser($Auth->id);
// make variable and stuff
$username = $theuser->username;
echo isset($username) ? validation::safeOutputToScreen($username) : '';
?>
<!-- convert to js variable -->
var username = <?php echo json_encode($username); ?>;
<!-- inject username into username input -->
<script>
$('document').ready(function () {
$('#inputfield1').val(username)
})
</script>
这在我的原始 php 页面 test.php 中有效,并将我主站点中的登录用户注入到 test.php 页面的输入字段中。
但是,当我尝试将 GetTheUser 代码(以 smarty {php}{/php} 包装)包含到 viewcart.tpl 中时,不幸的是它会导致 php 错误 Fatal error: Class 'GetTheUser' not found in /home/mysite.com/whmcs/vendor/smarty/smarty/libs/SmartyBC.class.php(464) : eval()'d code on line 2。
所以我只需要以某种方式获取此用户名并将其注入 whmcs 中的购物车页面。
我尝试将 php 代码添加到 cart.php,但它导致 whmcs 告诉我 the file is corrupted php 错误页面。所以不幸的是不能将php放入whmcs中的cart.php中。
请告诉我如何从 mysite.com 获取我的外部 php 变量,mysite.com 这是我的自定义 php 站点,并插入到我的 whmcs mysite.com/whmcs/cart.php 上的购物车页面中
【问题讨论】:
标签: javascript php templates whmcs