How would I keep the slash in my $domain when using wpmu_create_blog to create a site

196 Views Asked by At

I am currently working on an automated site creation function on my local installation of wordpress. In essence, a form is filled out on an already existing site and that info is pulled to create a new site automatically via an endpoint that activates some queries. So far I have been able to successfully pull the information into an array and then pass that to the wpmu_create_blog function. The issue is that the $domain isn't being called correctly(that is to say, how I intend it to be called), the '/' is lost between 'localhost' and 'wordpress'.

public function create_endpoint($request) {
        $key = $request['key'];
        if ($this->validate_key($key)) {
          $newsite = array (
                $title = $request['name'],
                $path = $request['slug'],
                $admin_user = $request['admin_user'],
              );
                $domain = 'localhost/wordpress';
                $site_id = get_blog_id_from_url($domain, $path);
                $user_id = get_user_by('login', $admin_user);
                  if ( !empty($title) and !empty($domain) and !empty($path) and empty($user_id) ) {
                    return wpmu_create_blog($domain, $path, $title, $user_id, $site_id);
                  }
                  else {
                    return "Not enough information";
                  }
        }
         else {
            return $this->invalid_key_message;
        }
    }

Everything but the domain being called as intended is working as intended. This is also just the static prototype, my end goal is that this is entirely dynamic including the $domain variable.

I'm just totally lost on where to go from here. I've tried some appendage stuff and moving syntax around in all types of ways but keep hitting a wall. Any input or suggestions are happily accepted.

1

There are 1 best solutions below

0
On

I have a solution implemented. In the array $path has been changed to $slug (use of slug is specific to my code). The $domain now only calls 'localhost' and I create $path using plain text the 'wordpress' and then add the slug via a $request.

  $newsite = array (
                $title = $request['name'],
                $slug = $request['slug'],
                $admin_user = $request['admin_user'],
              );
                $domain = 'localhost';
                $path = 'wordpress/'.$request['slug'];