Join

WooCommerce Customer Registration Shortcode

Don't want to mess with code snippets? Request for this to be a feature of MyListing Pro.

Instructions

  1. Create a new PHP code snippet.
  2. Copy the contents of code snippet below.
  3. Paste the contents into your code snippet.
  4. Review any notes that I’ve provided.
  5. Save and enable the code snippet.
  6. Test.

Snippet

This code snippet is useful for situations like creating separate Login and Registration pages.

<?php

add_shortcode("wc_reg_form_wptu", "wptu_separate_registration_form");

function wptu_separate_registration_form()
{
    if (is_user_logged_in()) {
        return "<p>You are already registered</p>";
    }
    ob_start();
    do_action("woocommerce_before_customer_login_form");
    $html = wc_get_template_html("myaccount/form-login.php");
    $dom = new DOMDocument();
    $dom->encoding = "utf-8";
    $dom->loadHTML(utf8_decode($html));
    $xpath = new DOMXPath($dom);
    $form = $xpath->query('//form[contains(@class,"register")]');
    $form = $form->item(0);
    echo $dom->saveHTML($form);
    return ob_get_clean();
}