Create Groups and Forums for groups from PHP
-
I found the excellent article by Tanner Moushey on how to create groups programmaticaly: https://tannermoushey.com/2014/08/create-groups-buddypress/
However I also need to create a forum for each group, and I can’t get his suggestion of using groups_new_group_forum to work. I read other posts of getting function doesnt exist error for bp_forums_new_forum (which groups_new_group_forum calls), but I believe I found the right requires to get that function, and everything it depends on, but now I am getting an error about null several layers down within bb code.
Here is my code so far:
<?php
/* Show the errors in browser */error_reporting(E_ALL);
ini_set('display_errors', 1);/** Load WordPress Bootstrap */
require_once( dirname( __FILE__ ) . '/../admin.php' );/** Load WordPress dashboard API */
require_once(ABSPATH . 'wp-admin/includes/dashboard.php');wp_dashboard_setup();
do_action('bbpress_init');
?>
<H1>Add Groups</H1>
<?php
$args = array(
'group_id' => 0,
'creator_id' => 0,
'name' => 'California',
'description' => 'For people located in California',
'slug' => 'california',
'status' => 'public',
'enable_forum' => 1,
'date_created' => bp_core_current_time()
);?>
<p>Creating group '<?php echo $args[name] ?>'</p>
<?php
$newgroupid = groups_create_group($args);
?>
<?php
////////////////////////////
// Now creating a new forum// Not needed for get groups_create_group - this already got included
// require_once(ABSPATH . 'wp-content/plugins/buddypress/bp-groups/bp-groups-forums.php');// For bp_forums_new_forum
require_once(ABSPATH . 'wp-content/plugins/buddypress/bp-forums/bp-forums-functions.php');// For bb_new_forum
require_once(ABSPATH . 'wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/class.bb-walker.php');
require_once(ABSPATH . 'wp-content/plugins/buddypress/bp-forums/bbpress/bb-admin/includes/functions.bb-admin.php');// For bb_current_user_can
require_once(ABSPATH . 'wp-content/plugins/buddypress/bp-forums/bbpress/bb-includes/functions.bb-capabilities.php');// Example from: http://buddypress.wp-a2z.org/oik_api/groups_new_group_forum/
$newforumid = groups_new_group_forum($newgroupid,'California','For people located in California');?>
<table>
<tr><td>Newly created group id:</td><td><?php echo $newgroupid ?></td><td>Groups</td>
</tr>
<tr><td>Newly created forum id:</td><td><?php echo $newforumid ?></td><td>Forums</td>
</tr></table>
It throws this error:
Fatal error: Uncaught Error: Call to a member function get_var() on null in /Users/eyespider/projects/justiceserved/local/wp-content/plugins/buddypress/bp-forums/bbpress/bb-admin/includes/functions.bb-admin.php:992 Stack trace:
#0 /Users/eyespider/projects/justiceserved/local/wp-content/plugins/buddypress/bp-forums/bp-forums-functions.php(123): bb_new_forum(Array)
#1 /Users/eyespider/projects/justiceserved/local/wp-content/plugins/buddypress/bp-groups/bp-groups-forums.php(47): bp_forums_new_forum(Array)
#2 /Users/eyespider/projects/justiceserved/local/wp-admin/custom/add-groups2.php(67): groups_new_group_forum(38, 'California', 'For people loca...')
#3 {main} thrown in /Users/eyespider/projects/justiceserved/local/wp-content/plugins/buddypress/bp-forums/bbpress/bb-admin/includes/functions.bb-admin.php on line 992
- You must be logged in to reply to this topic.