Skip to content

Instantly share code, notes, and snippets.

View verygoodplugins's full-sized avatar

Very Good Plugins verygoodplugins

View GitHub Profile
@verygoodplugins
verygoodplugins / wpf-apply-tags-order-hold.php
Last active April 7, 2017 14:27
Applies tags to users when order is placed On Hold (cheque payments)
<?php
// Applies tags to users when order is placed On Hold (cheque payments)
add_action( 'woocommerce_order_status_on-hold', 'custom_wpf_woo_on_hold' );
function custom_wpf_woo_on_hold( $order_id ) {
$order = new WC_Order( $order_id );
$user = get_user_by( 'email', $order->billing_email );
@verygoodplugins
verygoodplugins / wpf-awp-change-urls.php
Created June 8, 2017 08:11
Change Affiliate WP URLs to include affiliate email/ID in URL
<?php
function custom_awp_url($url) {
$user_meta = wp_get_current_user();
$user_email = $user_meta->user_email;
$url = $url . '?leadsource=' . urlencode($user_email);
@verygoodplugins
verygoodplugins / wpf-remove-empty-meta.fields.php
Created May 15, 2018 12:26
Deletes user meta fields if the data loaded from the CRM is missing or empty
<?php
// Deletes user meta fields if the data loaded from the CRM is missing or empty
function wpf_remove_empty_meta_fields( $user_id, $user_meta ) {
$contact_fields = wp_fusion()->settings->get( 'contact_fields' );
foreach ( $contact_fields as $field_id => $field_data ) {
@verygoodplugins
verygoodplugins / wpf-gravity-forms-multiple-contacts.php
Created June 6, 2018 16:39
Adds additional contacts to Infusionsoft when a Gravity Form is submitted
<?php
function my_gform_after_submission( $entry, $form ) {
// Gets the first name and last name from field ID 3, and email from field ID 4
$contact_data = array(
'FirstName' => rgar( $entry, '3.3' ),
'LastName' => rgar( $entry, '3.6' ),
'Email' => rgar( $entry, '4' )
);
@verygoodplugins
verygoodplugins / wpf-infusionsoft-filebox-files.php
Last active June 25, 2018 17:00
Shows Infusionsoft filebox files for a contact on the admin user profile
<?php
function process_file_download() {
if( ! isset( $_GET['ifs_download'] ) || empty( $_GET['ifs_download'] ) || ! is_user_logged_in() ) {
return;
}
$file_id = $_GET['ifs_download'];
@verygoodplugins
verygoodplugins / wpf-disable-sync-by-role.php
Created July 5, 2018 17:34
Block syncing of user metadata by user role
<?php
// Prevents data from syncing to CRM for users with the role "subscriber"
function block_updates_by_role( $user_meta, $user_id ) {
$user = get_user_by( 'id', $user_id );
if ( in_array( 'subscriber', (array) $user->roles ) ) {
return false;
@verygoodplugins
verygoodplugins / wpf-sync-woocommerce-coupon.php
Created July 6, 2018 14:47
Adds a meta field for wc_coupon and syncs the most recently used coupon to the contact record on checkout
<?php
/*
Plugin Name: WP Fusion - WooCommerce Coupon Sync
Description: Syncs a coupon used at checkout to a custom field on the contact record
Plugin URI: https://verygoodplugins.com/
Version: 1.0
Author: Very Good Plugins
Author URI: https://verygoodplugins.com/
*/
@verygoodplugins
verygoodplugins / wpf-scheduled-tags-resync.php
Created July 9, 2018 13:59
Resync all user tags every Friday
<?php
if ( ! wp_next_scheduled( 'wpf_update_tags_weekly' ) ) {
wp_schedule_event(time(), 'daily', 'wpf_update_tags_weekly' );
}
add_action('wpf_update_tags_weekly', 'do_wpf_update_tags');
function do_wpf_update_tags() {
@verygoodplugins
verygoodplugins / wpf-use-names-as-logins.php
Last active July 10, 2018 17:54
Users imported by webhook will have usernames generated from their first and last names, instead of email address
<?php
// Use first name and lastname as the username
function wpf_use_names_as_logins( $user_meta ) {
$user_meta['user_login'] = strtolower( $user_meta['first_name'] . $user_meta['last_name'] );
return $user_meta;
@verygoodplugins
verygoodplugins / wpf-sf-instance-url.php
Created September 6, 2018 22:17
Allow editing of Salesforce instance URL
<?php
function add_sf_instance_url( $settings ) {
$settings['sf_instance_url'] = array(
'title' => 'Instance URL',
'desc' => '',
'std' => '',
'type' => 'text',
'section' => 'setup'