我正在为客户端进行wordpress安装。 他选择的电子商务插件与Wordpress用户无法很好地集成。 我想在wordpress中创建新的用户记录时,将新记录插入到插件的用户帐户系统中。 对我来说,似乎wp_users表上的一个触发器在插入之前将用户数据复制到插件表就可以了。很简单。 但是,在我的测试中,我无法获取wp_users表触发器来执行任何操作。如果触发事件为Before Insert或After Insert,则新用户帐户创建将挂起并阻止数据插入到wp_users。在更新前指定时,它允许在wp_users中插入数据,但不允许插入插件表。 在任何时候它都没有正确执行触发器。 这是我的代码:
DROP TRIGGER IF EXISTS `user_update`//
CREATE TRIGGER `dbname`.`user_update`
AFTER INSERT
ON `wp_users` FOR EACH ROW
BEGIN
INSERT INTO `test_data_dump` (`username`, `password`, `email`, `first_name`, `created_at`) VALUES(user_login, user_pass, user_email, user_nicename, user_registered);
END
任何见解都有助于immensley。
答案 0 :(得分:2)
问题在于这条线。当您引用新插入的数据时,需要使用单词new
:
INSERT INTO 'test_data_dump' ('username', 'password', 'email', 'first_name', 'created_at')
VALUES (new.user_login, new.user_pass, new.user_email, new.user_nicename, new.user_registered);
编辑:假设您的所有表列和名称都匹配,则此语法应该有效:
DROP TRIGGER IF EXISTS user_update;
CREATE TRIGGER user_update AFTER INSERT ON wp_users
FOR EACH ROW BEGIN
INSERT INTO test_data_dump ('username', 'password', 'email', 'first_name', 'created_at')
VALUES (new.user_login, new.user_pass, new.user_email, new.user_nicename, new.user_registered);
END;