在可从控制器访问的单独 php 文件中创建自定义函数
Creating custom function in separate php file which is accessible from controller
我想在 Opencart 2.3.0.2 中为 catalog->controller->checkout->cart.php 编写一个函数
我已经编写了一个逻辑来检查 priduct_id 并在找到特定产品 ID 时采取措施。
现在我想在单独的 php 文件中将此逻辑放在单独的函数中,以便它变得更易于管理。
我在 system->helper 下的 php 文件中创建了函数,并从 startup.php 加载了它。
然后我可以从 cart.php 调用这个函数,但是即使我将 $this 传递给这个函数,对变量 $this 的引用也会丢失。
我的精简代码如下所示
cart.php
//some code before this
if (!$json) {
// Check if Product is Addon
test($this);
//more code after this
customfunction.php
function test($this) {
// print_r("Test Called");
$temp = $this->request->post['product_id'];
if ($this->request->post['product_id'] == 142) {
$json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart'));
$product_options = $this->model_catalog_product->getProductOptions($this->request->post['product_id']);
$product_option_id = $product_option['product_option_id'];
//more code
我收到
的错误
$this->request->post['product_id'];
谁能告诉我如何从单独的 php 文件中调用自定义函数并保留对 $this 变量的引用。
$this
是 php 中的保留字:
The pseudo-variable $this is available when a method is called from
within an object context.
试试看:
function test($ctrl) {
$temp = $ctrl->request->post['product_id'];
if ($ctrl->request->post['product_id'] == 142) {
...
我想在 Opencart 2.3.0.2 中为 catalog->controller->checkout->cart.php 编写一个函数 我已经编写了一个逻辑来检查 priduct_id 并在找到特定产品 ID 时采取措施。 现在我想在单独的 php 文件中将此逻辑放在单独的函数中,以便它变得更易于管理。
我在 system->helper 下的 php 文件中创建了函数,并从 startup.php 加载了它。 然后我可以从 cart.php 调用这个函数,但是即使我将 $this 传递给这个函数,对变量 $this 的引用也会丢失。
我的精简代码如下所示 cart.php
//some code before this
if (!$json) {
// Check if Product is Addon
test($this);
//more code after this
customfunction.php
function test($this) {
// print_r("Test Called");
$temp = $this->request->post['product_id'];
if ($this->request->post['product_id'] == 142) {
$json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart'));
$product_options = $this->model_catalog_product->getProductOptions($this->request->post['product_id']);
$product_option_id = $product_option['product_option_id'];
//more code
我收到
的错误$this->request->post['product_id'];
谁能告诉我如何从单独的 php 文件中调用自定义函数并保留对 $this 变量的引用。
$this
是 php 中的保留字:
The pseudo-variable $this is available when a method is called from within an object context.
试试看:
function test($ctrl) {
$temp = $ctrl->request->post['product_id'];
if ($ctrl->request->post['product_id'] == 142) {
...