Add myCred points every time an order is added to Paid Memberships Pro

Add myCred points every time an order is added to Paid Memberships Pro on child sites.

Snippet Type

Execute on Child Sites

Snippet

function add_my_cred_to_pmpro_orders( $order ) {

	// Bail if order isn't successful.
	if ( ! function_exists( 'mycred_add' ) || ! in_array( $order->status, array( '', 'success' ) ) ) {
		return;
	}

	$level_id  = intval( $order->membership_id );
	$user_id   = intval( $order->user_id );
	$points    = 10; // default to 0 points.
	$reference = 'Successful Membership Payment';
	$entry     = 'Paid Memberships Pro - level: ' . $level_id;

	switch ( $level_id ) {
		case 1:
			$points = 20;
			break;
		case 2:
			$points = 15;
			break;
	}

	// Add points to my cred
	mycred_add( $reference, $user_id, $points, $entry );

	// Write to order notes.
	$order->notes .= ' MyCred points for this order: ' . $points;
	$order->saveOrder();
}
add_action( 'pmpro_added_order', 'add_my_cred_to_pmpro_orders', 10, 1 );

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.