EDD Auto Register

Description

This plugin now requires Easy Digital Downloads v2.3 or greater.

Once activated, EDD Auto Register will create a WordPress user account for your customer at checkout, without the need for the customer to enter any additional information. This eliminates the need for the default EDD registration form, and drastically reduces the time it takes your customers to complete their purchase.

Guest checkout is required so the plugin overrides the setting. The registration form is hidden on checkout while the plugin is active.

There are various filters available for developers, see the FAQ tab for more information.

More add-ons for Easy Digital Downloads

You can find more add-ons (both free and commercial) from Easy Digital Downloads’ website

Screenshots

  • The standard purchase form which will create a user account from the customer's Email Address
  • The plugin's simple login form when both "Disable Guest Checkout" and "Show Register / Login Form?" are enabled
  • The error message that shows when "Disable Guest Checkout" is enabled, but "Show Register / Login Form?" is not

Installation

  1. Unpack the entire contents of this plugin zip file into your wp-content/plugins/ folder locally
  2. Upload to your site
  3. Navigate to wp-admin/plugins.php on your site (your WP Admin plugin page)
  4. Activate this plugin
  5. That’s it! user accounts will automatically be created for your customers when they purchase your product for the first time and their login details will be emailed to them

OR you can just install it with WordPress by going to Plugins >> Add New >> and type this plugin’s name

FAQ

Installation Instructions
  1. Unpack the entire contents of this plugin zip file into your wp-content/plugins/ folder locally
  2. Upload to your site
  3. Navigate to wp-admin/plugins.php on your site (your WP Admin plugin page)
  4. Activate this plugin
  5. That’s it! user accounts will automatically be created for your customers when they purchase your product for the first time and their login details will be emailed to them

OR you can just install it with WordPress by going to Plugins >> Add New >> and type this plugin’s name

How can I modify some of the key aspects of the plugin?

There are filters available to modify the behaviour of the plugin, see the list below:

  1. edd_auto_register_email_subject
  2. edd_auto_register_headers
  3. edd_auto_register_insert_user_args
  4. edd_auto_register_email_body
  5. edd_auto_register_error_must_login
  6. edd_auto_register_login_form
  7. edd_auto_register_disable
Can you provide a filter example of how to change the email’s subject?

Add the following to your child theme’s functions.php

function my_child_theme_edd_auto_register_email_subject( $subject ) {

    // enter your new subject below
    $subject = 'Here are your new login details';

    return $subject;

}
add_filter( 'edd_auto_register_email_subject', 'my_child_theme_edd_auto_register_email_subject' );
Can you provide a filter example of how to change the email’s body?

Add the following to your child theme’s functions.php

function my_child_theme_edd_auto_register_email_body( $default_email_body, $first_name, $username, $password ) {

    // Modify accordingly
    $default_email_body = __( "Dear", "edd-auto-register" ) . ' ' . $first_name . ",\n\n";
    $default_email_body .= __( "Below are your login details:", "edd-auto-register" ) . "\n\n";
    $default_email_body .= __( "Your Username:", "edd-auto-register" ) . ' ' . $username . "\n\n";
    $default_email_body .= __( "Your Password:", "edd-auto-register" ) . ' ' . $password . "\n\n";
    $default_email_body .= __( "Login:", "edd-auto-register" ) . ' ' . wp_login_url() . "\r\n";

    return $default_email_body;

}
add_filter( 'edd_auto_register_email_body', 'my_child_theme_edd_auto_register_email_body', 10, 4 );
Can you provide an example how to disable auto register?

Add the following to your child theme’s functions.php

/*
 * Disable auto register for specific products
 */
function my_child_theme_disable_auto_register() {
    $cart_contents = edd_get_cart_contents();
    if ( ! $cart_contents ) {
        return;
    }
    foreach ( $cart_contents as $key => $item ) {
        $items[] = $item['id'];
    }
    // List of download ids that require auto register
    $items_for_auto_register = array( '21', '987' );
    // If there are no downloads that require auto register then disable it.
    if ( ! array_intersect( $items, $items_for_auto_register ) ) {
        add_filter( 'edd_auto_register_disable', '__return_true', 11 );
    }
}
add_action( 'init', 'my_child_theme_disable_auto_register', 11 );
How can I disable the email from sending to the customer?

There’s an option under downloads → settings → extensions

Reviews

Its horrible security to send out passwords in cleartext.

Security is sadly a topic that the EDD people to not care about. Sending clear text passwords out to people should not be done. I have fixed this with this code. This hides the field be then tells the users after the did the purchase that they should create a password. Not very user friendly, I currently had disabled it but I am thinking of activating it again because I think my sales gone down because if this.


<?php
namespace nextgenthemes\website;

add_filter( 'edd_auto_register_email_body', __NAMESPACE__ . '\\edd_auto_register_email_body', 10, 4 );

function edd_auto_register_email_body( $default_email_body, $first_name, $username, $password ) {

	// Email body
	$out = __( "Dear", "edd-auto-register" ) . ' ' . $first_name . ",\n\n";
	$out .= sprintf(
		__( "Thanks for your purchase! A account with a random password has been created for you. Please <a href='%s'>follow the lost password procedure</a> to create a secure password for your account in case you want to ask a support question or access your downloads. (For security reasons passwords are not send out in cleartext)", "nextgenthemes-website" ),
		wp_lostpassword_url()
	) . "\n\n";
	$out .= __( "Your Username:", "edd-auto-register" ) . ' ' . $username . "\n\n";

	return $out;
}

Also using emails and usernames isn’t exactly great either as you can guess them form the author slugs WP generates from them.

My Idea would be so simply use javascript on checkout to fill in a random generate password on checkout automatically. WP already has a function for this. And do not display the 2nd password confirm field at all, and maybe even autofill the username field with something based on the first/last name they enter.

To elaborate on my point that this is not the first time I notice this pattern from EDD:

They had ssl_verify => false all over their code, I think its now changed it now changed some areas, or at least the is a option to verify your shops ssl. But with the software licensing extension those API calls and downloads are (or at lease were) totally unresponsively ignoring SSL altogether. Because some WP bug that was fixed like 10 years ago. Their entire attitude to simply ignore it because it may fail in some very rare cases is very bad.

It could lead to a chain reaction from a MITM attack on easydigitaldownloads.com that all extensions they ship to customers would ship from hackers sites instead with malicious code and given that many of their customers use EDD SL as well they could spread it from there. Because all the API calls simple ignor(ed) SSL! Not a security expert but at least I pay a little bit attention.

Also, and my guess is that this is very common in this industry. They do support via email and they expect you to send them passwords to your sites in cleartext!

Great Idea, bad execution.

Works, I have one suggestion

This plugin works, I have a suggestion though.
In the EDD settings > Misc > Checkout Settings > Show Register / Login Form?
You should remove the first two options in the Select field since they no longer apply.

I got stuck on this setting for 30 second, no biggy but would make setup smoother.

Great for checkout conversions

Keep your checkout fields minimal to improve conversions while still getting your customer accounts established.

Definitely a key add-on for my EDD sites. Can’t do without it now.

Works perfectly

I wish there was an option to enable the introduction of the password directly from the form

Read all 10 reviews

Contributors & Developers

“EDD Auto Register” is open source software. The following people have contributed to this plugin.

Contributors

“EDD Auto Register” has been translated into 2 locales. Thank you to the translators for their contributions.

Translate “EDD Auto Register” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

Version 1.3.9, April 27, 2017

  • Fix: User not added to subsite when user already exists in site network

1.3.8

  • Fix: Invalid foreach error when purchase does not contain license keys

1.3.7

  • Fix: Ensure user ID is set on license keys properly

1.3.6

  • Updated plugin authors

1.3.5

  • Fix: Users not automatically logged in when using the Free Downloads extension

1.3.4

  • Fix: Users not automatically logged in when using Buy Now buttons
  • Fix: Manual purchases incorrectly assigned to site administrator that created the payment

1.3.3

  • Tweak: Added support for other extensions to run the registration process before a payment is recorded
  • Fix: Removed unused global variables
  • Fix: Properly force Guest Checkout to be enabled

1.3.2

  • Fix: Correct compatibility with Easy Digital Downloads user verification process.

1.3.1

  • Fix: Issue with customers being forced to log in

1.3

  • Fix: Resolves compatibility issues with Easy Digital Downloads 2.1+
  • Fix: User accounts now created anytime a payment record is created, not just during checkout to resolve compatibility with some extensions
  • Fix: Dramatically simplified code base

1.2.1

  • Fix: EDD activation check

1.2

  • Tweak: Pass $user_data along to edd_auto_register_insert_user_args filter
  • Tweak: Pass username through sanitize_user() function

1.1

  • New: User account creation now closely mimics that of EDD core meaning a user account will be created no matter what payment gateway is used
  • New: “Lost Password?” link added to “login to purchase” form
  • New: Setting to disable the admin notification
  • New: Setting to disable the user notification
  • New: edd_auto_register_insert_user_args filter. This can be used to do things such as modify the default role of the user when they are created
  • Tweak: If a user who previously had an account returns to make a purchase it will no longer display “Email Address already in use”. Instead it will be treated as a guest purchase
  • Tweak: Email sent to user now includes login URL
  • Tweak: Major code overhaul
  • Tweak: New user email no longer uses the default EDD receipt template so it’s not styled like a receipt if you have a custom template.

1.0.2

  • New: Adding custom translations is now easier by adding them to the wp-content/languages/edd-auto-register folder
  • New: Spanish and Catalan translations. Thanks to Joan Boluda!
  • Fix: Undefined index errors when form was submitted without email address
  • Fix: Text strings not being translated properly in registration email

1.0.1

  • Fixed filter names for error messages

1.0

  • Initial release