Code Snippets Developer API
function wsl_lower_default_permissons( $provider_scope, $provider ) { if( 'facebook' == strtolower( $provider ) ) { $provider_scope = 'email'; // should not be empty or it will be overwritten } if( 'google' == strtolower( $provider ) ) { $provider_scope = 'profile'; // should not be empty or it will be overwritten } return $provider_scope; } add_filter( 'wsl_hook_alter_provider_scope', 'wsl_lower_default_permissons', 10, 2 );
In order for the buttons to display correctly in this example, Font Awesome should be integrated into your website theme.
function wsl_use_fontawesome_icons( $provider_id, $provider_name, $authenticate_url ) { ?> <a rel = "nofollow" href = "<?php echo $authenticate_url; ?>" data-provider = "<?php echo $provider_id ?>" class = "wp-social-login-provider wp-social-login-provider-<?php echo strtolower( $provider_id ); ?>" > <span> <i class="fa fa-<?php echo strtolower( $provider_id ); ?>"></i> Sign in with <?php echo $provider_name; ?> </span> </a> <?php } add_filter( 'wsl_render_auth_widget_alter_provider_icon_markup', 'wsl_use_fontawesome_icons', 10, 3 );
Solution contributed by Yitzi on WordPress support forum https://wordpress.org/support/topic/woocommerce-does-it-work?replies=3#post-5474168.
Note: I didn't personally test this code. It's listed here in the only hope that it will help.
// display WSL widget in woocommerce forms add_action( 'woocommerce_before_customer_login_form', 'wsl_action_wordpress_social_login' ); add_action( 'woocommerce_before_checkout_form' , 'wsl_action_wordpress_social_login' ); /** * Our hooked in function - $fields is passed via the filter */ function custom_override_checkout_fields( $fields ) { $current_user = wp_get_current_user(); $fields['billing']['billing_first_name']['default'] = $current_user->user_firstname; $fields['billing']['billing_last_name']['default'] = $current_user->user_lastname; return $fields; } add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
This is a very basic integration. The code below will add WSL widget into EDD login and register forms.
add_action( 'edd_checkout_login_fields_after' , 'wsl_action_wordpress_social_login' ); add_action( 'edd_register_account_fields_after', 'wsl_action_wordpress_social_login' );
This is a very basic integration. The code below will add 100 points to each new WSL user.
function mycred_award_wsl_users_signup( $user_id, $provider, $hybridauth_user_profile ) { if( ! function_exists( 'mycred_add' ) ) { return; } mycred_add( 'registration', $user_id, 100, 'Points for signing up through ' . $provider ); } add_action( 'wsl_hook_process_login_after_create_wp_user', 'mycred_award_wsl_users_signup', 10, 3 );
function get_access_tokens( $user_id, $provider, $hybridauth_user_profile ) { include_once( WORDPRESS_SOCIAL_LOGIN_ABS_PATH . '/hybridauth/Hybrid/Auth.php' ); try { $provider = Hybrid_Auth::getAdapter( $provider ); # oauth 1 and 2 $access_token = $provider->adapter->token( 'access_token' ); # oauth 1 $access_token_secret = $provider->adapter->token( 'access_token_secret' ); } catch( Exception $e ) { echo "Ooophs, we got an error: " . $e->getMessage(); } } add_filter( 'wsl_hook_process_login_before_wp_set_auth_cookie', 'get_access_tokens', 10, 3 );