创建自定义函数以记录插件中的操作

时间:2018-07-24 作者:Deleyna

这是我第一次尝试WordPress插件开发,如果你们能给我任何帮助,我将不胜感激。

这个插件需要仔细跟踪用户如何与它的某些区域交互。我有一个表来记录数据。我已经编写了这个函数(在插件类中定义):

<小时>

 public function update_history($userid,$idevent,$eventdesc,$log){
     //get a database object
     echo "we got here";

     global $wpdb;
     $wpdb->show_errors();

     $table_name = $wpdb->prefix . \'pw_history_log\';
     //values to write to database
     $item = array(
         \'iduser\' => $userid,
         \'ieventcode\' => $idevent,
         \'dtevent\' => date("Y-m-d H:i:s"),
         \'szactiondesc\' => $eventdesc,
         \'siteid\' => $log
     );
     // format values
     $format = array(\'%d\',\'%d\',\'%s\',\'%s\',\'%d\');
     // Insert the data
     $wpdb->insert($table_name, $item, $format);
}

我试着在其他地方这样称呼它:

do_action( \'update_history\', 333, 2001, "test event", 1 );
add_action( \'init\', \'update_history\', 10, 4 );
我没有出错。我没有在数据库中获取数据。我也没有得到任何我抛出的愚蠢的回声声明的迹象。所以函数未运行。

有人能给我指出正确的方向吗?我觉得自己真的很笨。

编辑:我想我没有正确实例化admin类。我取出了试图调用函数的行,并添加了:

$plugin_name_admin = new Plugin_Admin("name", "1.0");
$plugin_name_admin->update_history(333, 2001, "test event", 1);
现在它正在工作!

1 个回复
最合适的回答,由SO网友:Baikare Sandeep 整理而成

只需将动作挂钩更改为:

add_action( \'update_history\', \'update_history\', 10, 4 );
它会起作用的。

结束

相关推荐

WPDB准备类似%-占位符?

这些是{xxx...} 的占位符% 在一个类似的声明中正常吗?如果是这样的话,他们什么时候会转换回%\'sSHELL wp> global $wpdb; wp> $q = \"%s\"; => string(2) \"%s\" wp> $pq = $wpdb->prepare($q, \'%hi%\'); => string(136) \"\'{6e039dc0b074a5ff6828a070d0c24708d132341f32d