将 Opencart 关联变量名称从 Tracking 更改为 Ref?

Changing Opencart Affiliate Variable Name from Tracking to Ref?

我在一个 opencart 网站上工作,我被问到是否可以将当前的会员 link 从阅读 mywebsite.com/currentproduct?tracking=tracking-code-here 更改为 至 mywebsite.com/currentproduct?ref=tracking-code-here.

几乎命名为 ?ref=tracking-code 而不是 ?tracking=tracking-code-here

的变量

我猜我只是将 GET 变量名称从 tracking 更改为 ref。但是,我不确定它到底在哪里。

我在 admin/model/customer/customer.php 中找到了这段代码,想知道是否可以将 tracking = '" . $this->db->escape($data['tracking']) . "', 部分更改为 ref 而不会破坏重要内容。

    if ($data['affiliate']) {
        $this->db->query("REPLACE INTO " . DB_PREFIX . "customer_affiliate SET customer_id = '" . (int)$customer_id . "', company = '" . $this->db->escape($data['company']) . "', website = '" . $this->db->escape($data['website']) . "', tracking = '" . $this->db->escape($data['tracking']) . "', commission = '" . (float)$data['commission'] . "', tax = '" . $this->db->escape($data['tax']) . "', payment = '" . $this->db->escape($data['payment']) . "', cheque = '" . $this->db->escape($data['cheque']) . "', paypal = '" . $this->db->escape($data['paypal']) . "', bank_name = '" . $this->db->escape($data['bank_name']) . "', bank_branch_number = '" . $this->db->escape($data['bank_branch_number']) . "', bank_swift_code = '" . $this->db->escape($data['bank_swift_code']) . "', bank_account_name = '" . $this->db->escape($data['bank_account_name']) . "', bank_account_number = '" . $this->db->escape($data['bank_account_number']) . "', status = '" . (int)$data['affiliate'] . "', date_added = NOW()");
    }       
}

我已经将近 5 年没有在 opencart 中编写代码了,不幸的是,它开始出现了。对此的任何回答将不胜感激!谢谢!

我建议使用 .htaccess 重写规则重命名 URL 参数。这是这个问题的最佳解决方案

如果你想在 OC 代码中编辑它,你可以查看文件 /catalog/controller/startup/startup.php

第 126 行附近:

// Tracking Code
if (isset($this->request->get['tracking'])) {
    setcookie('tracking', $this->request->get['tracking'], time() + 3600 * 24 * 1000, '/');

    $this->db->query("UPDATE `" . DB_PREFIX . "marketing` SET clicks = (clicks + 1) WHERE code = '" . $this->db->escape($this->request->get['tracking']) . "'");
}       

您可以看到它正在寻找由 GET 参数 tracking 设置的值,这似乎是您要更改的值。

幸运的是,之后 OC 似乎依赖于 cookie,因此您不必担心其他任何地方,但测试将确定是否是这种情况