{"id":34,"date":"2019-11-11T11:35:47","date_gmt":"2019-11-11T17:35:47","guid":{"rendered":"https:\/\/travisolson.net\/code\/?p=34"},"modified":"2019-11-11T11:35:47","modified_gmt":"2019-11-11T17:35:47","slug":"woocommerce-add-password-confirmation-field-to-registration-form","status":"publish","type":"post","link":"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/","title":{"rendered":"WooCommerce: Add Password Confirmation Field to Registration Form"},"content":{"rendered":"<p>Users can register on both the account registration page and during checkout (if enabled).\u00a0 This code will add a field for the user to confirm the password that they entered in the primary password field.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\/\/ Validate password match on the registration page\r\nfunction myprefix_registration_errors_validation($reg_errors, $sanitized_user_login, $user_email) {\r\n  global $woocommerce;\r\n  extract( $_POST );\r\n  if ( strcmp( $password, $password2 ) !== 0 ) {\r\n    return new WP_Error( 'registration-error', __( 'Passwords do not match.', 'woocommerce' ) );\r\n  }\r\n  return $reg_errors;\r\n}\r\nadd_filter('woocommerce_registration_errors', 'myprefix_registration_errors_validation', 10,3);\r\n\r\n\/\/ Add a confirm password fields match on the registration page\r\nfunction myprefix_wc_register_form_password_repeat() {\r\n  ?&gt;\r\n  &lt;p class=\"form-row form-row-wide\"&gt;\r\n    &lt;label for=\"reg_password2\"&gt;&lt;?php _e( 'Verify Password', 'woocommerce' ); ?&gt; &lt;span class=\"required\"&gt;*&lt;\/span&gt;&lt;\/label&gt;\r\n    &lt;input type=\"password\" class=\"input-text\" name=\"password2\" id=\"reg_password2\" value=\"&lt;?php if ( ! empty( $_POST['password2'] ) ) echo esc_attr( $_POST['password2'] ); ?&gt;\" \/&gt;\r\n  &lt;\/p&gt;\r\n  &lt;?php\r\n}\r\nadd_action( 'woocommerce_register_form', 'myprefix_wc_register_form_password_repeat', 1 );\r\n\r\n\/\/ Validate confirm password field match to the checkout page\r\nfunction myprefix_woocommerce_confirm_password_validation( $posted ) {\r\n  $checkout = WC()-&gt;checkout;\r\n  if ( ! is_user_logged_in() &amp;&amp; ( $checkout-&gt;must_create_account || ! empty( $posted['createaccount'] ) ) ) {\r\n    if ( strcmp( $posted['account_password'], $posted['account_confirm_password'] ) !== 0 ) {\r\n      wc_add_notice( __( 'Passwords do not match.', 'woocommerce' ), 'error' ); \r\n    }\r\n  }\r\n}\r\nadd_action( 'woocommerce_after_checkout_validation', 'myprefix_woocommerce_confirm_password_validation', 10, 2 );\r\n\r\n\/\/ Add a confirm password field to the checkout page\r\nfunction myprefix_woocommerce_confirm_password_checkout( $checkout ) {\r\n  if ( get_option( 'woocommerce_registration_generate_password' ) == 'no' ) {\r\n    $fields = $checkout-&gt;get_checkout_fields();\r\n    $fields['account']['account_confirm_password'] = array(\r\n      'type'              =&gt; 'password',\r\n      'label'             =&gt; __( 'Confirm password', 'woocommerce' ),\r\n      'required'          =&gt; true,\r\n      'placeholder'       =&gt; _x( 'Confirm Password', 'placeholder', 'woocommerce' )\r\n    );\r\n    $checkout-&gt;__set( 'checkout_fields', $fields );\r\n  }\r\n}\r\nadd_action( 'woocommerce_checkout_init', 'myprefix_woocommerce_confirm_password_checkout', 10, 1 );<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Users can register on both the account registration page and during checkout (if enabled).\u00a0 This code will add a field for the user to confirm the password that they entered in the primary password field. \/\/ Validate password match on the registration page function myprefix_registration_errors_validation($reg_errors, $sanitized_user_login, $user_email) { global $woocommerce; extract( $_POST ); if (&#8230;  <a class=\"excerpt-read-more\" href=\"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/\" title=\"Read WooCommerce: Add Password Confirmation Field to Registration Form\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,2],"tags":[],"class_list":["post-34","post","type-post","status-publish","format-standard","hentry","category-woocommerce","category-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>WooCommerce: Add Password Confirmation Field to Registration Form - Travis Olson&#039;s Code Snippets<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WooCommerce: Add Password Confirmation Field to Registration Form - Travis Olson&#039;s Code Snippets\" \/>\n<meta property=\"og:description\" content=\"Users can register on both the account registration page and during checkout (if enabled).\u00a0 This code will add a field for the user to confirm the password that they entered in the primary password field. \/\/ Validate password match on the registration page function myprefix_registration_errors_validation($reg_errors, $sanitized_user_login, $user_email) { global $woocommerce; extract( $_POST ); if (... Read more &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/\" \/>\n<meta property=\"og:site_name\" content=\"Travis Olson&#039;s Code Snippets\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-11T17:35:47+00:00\" \/>\n<meta name=\"author\" content=\"Travis Olson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Travis Olson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/\"},\"author\":{\"name\":\"Travis Olson\",\"@id\":\"https:\/\/www.travisolson.net\/code\/#\/schema\/person\/0170ab5b2e7a3d88436375cc50336934\"},\"headline\":\"WooCommerce: Add Password Confirmation Field to Registration Form\",\"datePublished\":\"2019-11-11T17:35:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/\"},\"wordCount\":44,\"publisher\":{\"@id\":\"https:\/\/www.travisolson.net\/code\/#\/schema\/person\/0170ab5b2e7a3d88436375cc50336934\"},\"articleSection\":[\"WooCommerce\",\"WordPress\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/\",\"url\":\"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/\",\"name\":\"WooCommerce: Add Password Confirmation Field to Registration Form - Travis Olson&#039;s Code Snippets\",\"isPartOf\":{\"@id\":\"https:\/\/www.travisolson.net\/code\/#website\"},\"datePublished\":\"2019-11-11T17:35:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.travisolson.net\/code\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WooCommerce: Add Password Confirmation Field to Registration Form\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.travisolson.net\/code\/#website\",\"url\":\"https:\/\/www.travisolson.net\/code\/\",\"name\":\"Travis Olson&#039;s Code Snippets\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.travisolson.net\/code\/#\/schema\/person\/0170ab5b2e7a3d88436375cc50336934\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.travisolson.net\/code\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.travisolson.net\/code\/#\/schema\/person\/0170ab5b2e7a3d88436375cc50336934\",\"name\":\"Travis Olson\",\"logo\":{\"@id\":\"https:\/\/www.travisolson.net\/code\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/www.travisolson.net\/code\/author\/travis-olson\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WooCommerce: Add Password Confirmation Field to Registration Form - Travis Olson&#039;s Code Snippets","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/","og_locale":"en_US","og_type":"article","og_title":"WooCommerce: Add Password Confirmation Field to Registration Form - Travis Olson&#039;s Code Snippets","og_description":"Users can register on both the account registration page and during checkout (if enabled).\u00a0 This code will add a field for the user to confirm the password that they entered in the primary password field. \/\/ Validate password match on the registration page function myprefix_registration_errors_validation($reg_errors, $sanitized_user_login, $user_email) { global $woocommerce; extract( $_POST ); if (... Read more &raquo;","og_url":"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/","og_site_name":"Travis Olson&#039;s Code Snippets","article_published_time":"2019-11-11T17:35:47+00:00","author":"Travis Olson","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Travis Olson","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/#article","isPartOf":{"@id":"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/"},"author":{"name":"Travis Olson","@id":"https:\/\/www.travisolson.net\/code\/#\/schema\/person\/0170ab5b2e7a3d88436375cc50336934"},"headline":"WooCommerce: Add Password Confirmation Field to Registration Form","datePublished":"2019-11-11T17:35:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/"},"wordCount":44,"publisher":{"@id":"https:\/\/www.travisolson.net\/code\/#\/schema\/person\/0170ab5b2e7a3d88436375cc50336934"},"articleSection":["WooCommerce","WordPress"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/","url":"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/","name":"WooCommerce: Add Password Confirmation Field to Registration Form - Travis Olson&#039;s Code Snippets","isPartOf":{"@id":"https:\/\/www.travisolson.net\/code\/#website"},"datePublished":"2019-11-11T17:35:47+00:00","breadcrumb":{"@id":"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.travisolson.net\/code\/woocommerce-add-password-confirmation-field-to-registration-form\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.travisolson.net\/code\/"},{"@type":"ListItem","position":2,"name":"WooCommerce: Add Password Confirmation Field to Registration Form"}]},{"@type":"WebSite","@id":"https:\/\/www.travisolson.net\/code\/#website","url":"https:\/\/www.travisolson.net\/code\/","name":"Travis Olson&#039;s Code Snippets","description":"","publisher":{"@id":"https:\/\/www.travisolson.net\/code\/#\/schema\/person\/0170ab5b2e7a3d88436375cc50336934"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.travisolson.net\/code\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.travisolson.net\/code\/#\/schema\/person\/0170ab5b2e7a3d88436375cc50336934","name":"Travis Olson","logo":{"@id":"https:\/\/www.travisolson.net\/code\/#\/schema\/person\/image\/"},"url":"https:\/\/www.travisolson.net\/code\/author\/travis-olson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.travisolson.net\/code\/wp-json\/wp\/v2\/posts\/34","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.travisolson.net\/code\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.travisolson.net\/code\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.travisolson.net\/code\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.travisolson.net\/code\/wp-json\/wp\/v2\/comments?post=34"}],"version-history":[{"count":1,"href":"https:\/\/www.travisolson.net\/code\/wp-json\/wp\/v2\/posts\/34\/revisions"}],"predecessor-version":[{"id":35,"href":"https:\/\/www.travisolson.net\/code\/wp-json\/wp\/v2\/posts\/34\/revisions\/35"}],"wp:attachment":[{"href":"https:\/\/www.travisolson.net\/code\/wp-json\/wp\/v2\/media?parent=34"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.travisolson.net\/code\/wp-json\/wp\/v2\/categories?post=34"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.travisolson.net\/code\/wp-json\/wp\/v2\/tags?post=34"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}