如何为Woocommerce的自定义插件添加自定义钩子

时间:2018-06-21 13:24:59

标签: php wordpress plugins woocommerce hook-woocommerce

我们已经为Woocommerce付款集成开发了一个自定义插件,我们需要在我们的插件文件中添加woocommerce挂钩,而不要在主题文件夹的function.php 中添加它。

如何将自定义钩子添加到我们可以从function.php文件调用的插件中?有什么解决方法吗?
(当我们在wordpress主题的function.php文件中添加自定义woocommerce钩子和操作代码,然后代码工作正常,但我们在自定义插件文件中需要它。)

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

有两种钩子:动作钩子和过滤器钩子。

动作挂钩就像是某些代码中的大门或门,允许您在特定的代码位置运行一些自定义代码。当处理该门或大门的代码运行时,它将被执行或“触发”。 这是基于事件的。

过滤器挂钩与动作挂钩有些不同。它们不用于触发某些自定义代码(不是基于事件的)。它们允许更改或操纵一些现有的代码值,例如字符串,数组,对象……因此,过滤器钩子总是处在最小值一个参数的情况下,并且会始终返回该操纵的参数 >。


在插件中创建自定义挂钩:

1)用于动作挂钩: do_action() WordPress功能

do_action('woocommerce_my_custom_action', $some_variable, $another_variable );

2)用于过滤器挂钩: apply_filters() Wordpress函数(其中$value是操纵参数)

$value = apply_filters('woocommerce_my_custom_action', $value, $some_variable, $another_variable );
  

Internet上有很多有关钩子的文档,教程和资源

Wordpress filter Vs. action

what is difference between action hook and filter hook in wordpress?

Wordpress Coding a custom action hook

答案 1 :(得分:1)

您的插件应该在其自己的php文件中具有其自己的功能,听起来好像您正在将代码粘贴到主题的function.php文件中?当主题更新时,它会被覆盖吗?这是你在做什么吗?

请阅读wordpress插件开发文档。 https://developer.wordpress.org/plugins/intro/

如果您的插件需要其他插件,则有几种方法可以使用户首先激活其他插件: https://wordpress.stackexchange.com/questions/127818/how-to-make-a-plugin-require-another-plugin