Skip to content

Commit

Permalink
Add WooCommerce onboarding connection track events
Browse files Browse the repository at this point in the history
  • Loading branch information
justinshreve committed Jul 3, 2019
1 parent 6b4e48c commit cdaebcc
Show file tree
Hide file tree
Showing 6 changed files with 94 additions and 9 deletions.
17 changes: 15 additions & 2 deletions client/blocks/login/login-form.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -189,10 +189,16 @@ export class LoginForm extends Component {

loginUser() {
const { password, usernameOrEmail } = this.state;
const { onSuccess, redirectTo, domain } = this.props;
const { onSuccess, redirectTo, domain, isJetpackWooCommerceFlow } = this.props;

this.props.recordTracksEvent( 'calypso_login_block_login_form_submit' );

if ( config.isEnabled( 'jetpack/connect/woocommerce' ) && isJetpackWooCommerceFlow ) {
this.props.recordTracksEvent( 'wcadmin_storeprofiler_login_jetpack_account', {
login_method: 'email',
} );
}

this.props
.loginUser( usernameOrEmail, password, redirectTo, domain )
.then( () => {
Expand Down Expand Up @@ -260,6 +266,13 @@ export class LoginForm extends Component {
}
}

onWooCommerceSocialSuccess = ( ...args ) => {
this.props.recordTracksEvent( 'wcadmin_storeprofiler_login_jetpack_account', {
login_method: 'google',
} );
this.props.onSuccess( args );
};

handleWooCommerceSubmit = event => {
event.preventDefault();
document.activeElement.blur();
Expand Down Expand Up @@ -401,7 +414,7 @@ export class LoginForm extends Component {
<span>{ this.props.translate( 'or' ) }</span>
</div>
<SocialLoginForm
onSuccess={ this.props.onSuccess }
onSuccess={ this.onWooCommerceSocialSuccess }
socialService={ this.props.socialService }
socialServiceResponse={ this.props.socialServiceResponse }
linkingSocialService={
Expand Down
16 changes: 16 additions & 0 deletions client/blocks/signup-form/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -598,9 +598,25 @@ class SignupForm extends Component {
);
}

handleWooCommerceSocialConnect = ( ...args ) => {
analytics.tracks.recordEvent( 'wcadmin_storeprofiler_create_jetpack_account', {
signup_method: 'google',
} );
this.props.handleSocialResponse( args );
};

handleWooCommerceSubmit = event => {
event.preventDefault();
document.activeElement.blur();
this.formStateController.handleSubmit( hasErrors => {
if ( hasErrors ) {
this.setState( { submitting: false } );
return;
}
analytics.tracks.recordEvent( 'wcadmin_storeprofiler_create_jetpack_account', {
signup_method: 'email',
} );
} );
this.handleSubmit( event );
};

Expand Down
37 changes: 33 additions & 4 deletions client/jetpack-connect/authorize.js
Original file line number Diff line number Diff line change
Expand Up @@ -256,11 +256,10 @@ export class JetpackAuthorize extends Component {
}

shouldAutoAuthorize() {
const { alreadyAuthorized, authApproved } = this.props.authQuery;

const { alreadyAuthorized, authApproved, from } = this.props.authQuery;
return (
this.isSso() ||
this.isWoo() ||
'woocommerce-services-auto-authorize' === from ||
( ! this.props.isAlreadyOnSitesList &&
! alreadyAuthorized &&
( this.props.calypsoStartedConnection || authApproved ) )
Expand Down Expand Up @@ -302,9 +301,29 @@ export class JetpackAuthorize extends Component {
return partnerRedirectFlag ? partnerSlug && 'pressable' !== partnerSlug : partnerSlug;
}

handleSignIn = () => {
const { recordTracksEvent } = this.props;
const { from } = this.props.authQuery;
if (
config.isEnabled( 'jetpack/connect/woocommerce' ) &&
'woocommerce-setup-wizard' === from
) {
recordTracksEvent( 'wcadmin_storeprofiler_connect_store', { different_account: true } );
}
};

handleSignOut = () => {
const { recordTracksEvent } = this.props;
const { from } = this.props.authQuery;
recordTracksEvent( 'calypso_jpc_signout_click' );

if (
config.isEnabled( 'jetpack/connect/woocommerce' ) &&
'woocommerce-setup-wizard' === from
) {
recordTracksEvent( 'wcadmin_storeprofiler_connect_store', { create_jetpack: true } );
}

userUtilities.logout( window.location.href );
};

Expand All @@ -328,7 +347,7 @@ export class JetpackAuthorize extends Component {
handleSubmit = () => {
const { recordTracksEvent } = this.props;
const { authorizeError, authorizeSuccess } = this.props.authorizationData;
const { alreadyAuthorized, redirectAfterAuth } = this.props.authQuery;
const { alreadyAuthorized, redirectAfterAuth, from } = this.props.authQuery;

if ( ! this.props.isAlreadyOnSitesList && ! this.props.isFetchingSites && alreadyAuthorized ) {
recordTracksEvent( 'calypso_jpc_back_wpadmin_click' );
Expand All @@ -354,6 +373,14 @@ export class JetpackAuthorize extends Component {
}

recordTracksEvent( 'calypso_jpc_approve_click' );

if (
config.isEnabled( 'jetpack/connect/woocommerce' ) &&
'woocommerce-setup-wizard' === from
) {
recordTracksEvent( 'wcadmin_storeprofiler_connect_store', { use_account: true } );
}

return this.authorize();
};

Expand Down Expand Up @@ -624,7 +651,9 @@ export class JetpackAuthorize extends Component {
isJetpack: true,
isNative: config.isEnabled( 'login/native-login-links' ),
redirectTo: window.location.href,
isWoo: this.isWoo(),
} ) }
onClick={ this.handleSignIn }
>
{ translate( 'Sign in as a different user' ) }
</LoggedOutFormLinkItem>
Expand Down
23 changes: 22 additions & 1 deletion client/jetpack-connect/style.scss
Original file line number Diff line number Diff line change
Expand Up @@ -967,7 +967,8 @@ $colophon-height: 50px; // wpcomColophon element at the bottom

.jetpack-connect__main,
.jetpack-connect__site.card,
.logged-out-form {
.logged-out-form,
.jetpack-connect__logged-in-card.card {
max-width: 476px;
}

Expand Down Expand Up @@ -1019,6 +1020,26 @@ $colophon-height: 50px; // wpcomColophon element at the bottom
}
}

.jetpack-connect__logged-in-card button {
border: 0;
box-shadow: none;
}

.jetpack-connect__notices-container {
margin-top: 20px;
}

.jetpack-connect__action-disclaimer {
padding-top: 0;

.jetpack-connect__tos-link,
.jetpack-connect__tos-link a {
text-align: left;
color: var( --color-gray-600 );
font-size: 12px;
}
}

.signup-form__woocommerce .card {
padding-bottom: 0;
}
Expand Down
2 changes: 1 addition & 1 deletion client/layout/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ export default connect( state => {
const noMasterbarForSection = 'signup' === sectionName || 'jetpack-connect' === sectionName;
const isJetpackMobileFlow = 'jetpack-connect' === sectionName && !! retrieveMobileRedirect();
const isJetpackWooCommerceFlow =
'jetpack-connect' === sectionName &&
( 'jetpack-connect' === sectionName || 'login' === sectionName ) &&
'woocommerce-setup-wizard' === get( getCurrentQueryArguments( state ), 'from' );
return {
masterbarIsHidden:
Expand Down
8 changes: 7 additions & 1 deletion client/lib/analytics/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,13 @@ let _superProps, _user, _selectedSite, _siteCount, _dispatch, _loadTracksError;
* See internal Nosara repo?
*/
const TRACKS_SPECIAL_PROPS_NAMES = [ 'geo', 'message', 'request', 'geocity', 'ip' ];
const EVENT_NAME_EXCEPTIONS = [ 'a8c_cookie_banner_ok' ];
const EVENT_NAME_EXCEPTIONS = [
'a8c_cookie_banner_ok',
// WooCommerce Onboarding / Connection Flow.
'wcadmin_storeprofiler_create_jetpack_account',
'wcadmin_storeprofiler_connect_store',
'wcadmin_storeprofiler_login_jetpack_account',
];

// Load tracking scripts
if ( typeof window !== 'undefined' ) {
Expand Down

0 comments on commit cdaebcc

Please sign in to comment.