Skip to content

Instantly share code, notes, and snippets.

@hiddenkirby
Last active July 9, 2016 22:33
Show Gist options
  • Save hiddenkirby/f370007d52067f34100d8ec26549e554 to your computer and use it in GitHub Desktop.
Save hiddenkirby/f370007d52067f34100d8ec26549e554 to your computer and use it in GitHub Desktop.
// hooking woocommerce purchase to updating the users sub level
function get_package_title_from_product_slug($product_slug) {
// fastest way is manual way... also shittiest way .. very fragile
_log('getting package title for: ' + $product_slug);
switch ($product_slug) {
case 'agent-1-property':
$result = 'Agent (1 property)';
break;
case 'agent-5-property':
$result = 'Agent (5 properties)';
break;
case 'agent-1-yr':
$result = 'Agent (unlimited)';
break;
case 'homeowner-3-mo':
$result = 'Homeowner (3 mo)';
break;
case 'homeowner-6-mo':
$result = 'Homeowner (6 mo)';
break;
case 'homeowner-1-yr':
$result = 'Homeowner (12 mo)';
break;
default:
$result = 'Homeseeker';
}
_log('Returning package title as: ' + $result);
return $result;
}
function woocommerce_to_update_user_sub($order_id = ''){
//get product slug from order_id
_log('Order id: ' + $order_id);
$order = WC_Order::get_order($order_id);
_log('Order: ' + $order);
$items = $order.get_items();
_log('Items: ' + $items);
$product_slug = $items[0]->$order_item_name;
_log('Product slug: ' + $product_slug);
// need $wc_package_title from wc slug
$wc_package_title = get_package_title_from_product_slug($product_slug);
$packages = Horizon_Packages_Logic::get_packages_choices();
_log('Packages: ' + $packages);
foreach ( $packages as $package_id => $package_title ){
if ($wc_package_title == $package_title){
_log('Setting package to: ' + $wc_package_title);
$user_id = get_current_user_id();
_log('User id: ' + $user_id);
//$user_id, $package_id required
do_action('horizon_update_user_subscription', $user_id, $package_id );
}
}
}
add_action('woocommerce_payment_complete', 'woocommerce_to_update_user_sub');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment