我正在通过WordPress网站为教师开发订票服务,并且每当老师在Wordpress网站上注册后,就需要自动为每位老师创建订票日历的过程。我如何使该过程自动化?老师已注册为WordPress用户,日历来自免费的插件名称“约会小时预订”,我想我需要以某种方式链接一旦创建WordPress用户即可运行的代码,但不确定如何执行。帮助吗?
答案 0 :(得分:0)
这是一个解决方案:例如,创建WordPress用户后,首先使用action user_register(https://codex.wordpress.org/Plugin_API/Action_Reference/user_register)运行一些代码
add_action( 'user_register', 'myplugin_registration_save', 10, 1 );
function myplugin_registration_save( $user_id ) {
// place code here
}
...在这种情况下,要使用“约会小时预订”插件创建日历,您应该首先创建一个具有默认设置的“基本”日历,并为每个用户克隆该日历,此代码应该可以工作:
$base_calendar_id = 1;
$myrows = $wpdb->get_row( $wpdb->prepare("SELECT * FROM ".$wpdb->prefix."cpappbk_forms WHERE id=%d", $base_calendar_id) , ARRAY_A);
unset($myrows["id"]);
$myrows["form_name"] = 'Cloned: '.$myrows["form_name"];
$myrows["cp_user_access"] = serialize(array($user_id));
$wpdb->insert( $wpdb->prefix.'cpappbk_forms', $myrows);
...因此完整的代码将是这样:
add_action( 'user_register', 'myplugin_registration_save', 10, 1 );
function myplugin_registration_save( $user_id ) {
global $wpdb;
$base_calendar_id = 1;
$myrows = $wpdb->get_row( $wpdb->prepare("SELECT * FROM ".$wpdb->prefix."cpappbk_forms WHERE id=%d", $base_calendar_id) , ARRAY_A);
unset($myrows["id"]);
$myrows["form_name"] = 'Cloned: '.$myrows["form_name"];
$myrows["cp_user_access"] = serialize(array($user_id));
$wpdb->insert( $wpdb->prefix.'cpappbk_forms', $myrows);
}
理想情况下,将代码放入主题的functions.php文件中,以避免被插件更新覆盖。
我希望这会有所帮助!