В WooCommerce есть настройка в разделе WooCommerce > Настройки > Аккаунты, позволяющая автоматически генерировать пароль для покупателя (пользователя). Это позволит пользователям указывать только лишь свой email адрес при регистрации (пароль будет автоматически создан и отправлен на их почту), аналогично тому, как WordPress работает с регистрацией с настройками по-умолчанию.
WooCommerce использует функцию ядра wp_generate_password() для генерации паролей, но может возникнуть необходимость изменить это поведение. Как это сделать мы и расскажем в сегодняшней статье.
Нам нужно применить фильтр woocommerce_new_customer_data, объявленный в районе строки 102 файла woocommerce/includes/wc-customer-functions.php:
<?php $new_customer_data = apply_filters( 'woocommerce_new_customer_data', array( 'user_login' => $username, 'user_pass' => $password, 'user_email' => $email, 'role' => 'customer' ) );
Поэтому, если вдруг вам понадобиться создать пароль, совпадающий с электронным адресом пользователя, можно использовать следующий код:
<?php function wcs_filter_password_email( $args ) { $args['user_pass'] = $args['user_email']; return $args; } add_filter( 'woocommerce_new_customer_data', 'wcs_filter_password_email' );
Или же, возможно, вы захотите использовать функцию wp_generate_password(), но при этом немного ее модифицировать, чтобы пароль состоял из шести символов и позволял использовать все специальные символы. Нижеследующий код поможет вам достичь желаемого:
<?php function wcs_filter_password_auto( $args ) { $new_password = wp_generate_password( 6, true, true ); $args['user_pass'] = $new_password; return $args; } add_filter( 'woocommerce_new_customer_data', 'wcs_filter_password_auto' );
Ознакомившись с документацией по функции wp_generate_password() можно реализовать и другие задачи, поставленные перед вами.
Если вы начинаете разбираться с WooCommerce, то не забудьте посетить нашу рубрику WooCommerce, где мы публикуем материалы специально по тематике магазинов на этой платформе.
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.