Quick actions

cmd+k|ctrl+k

Navigation

Languages

Untitled

Snippet info

Language

Php

Visibility

unlisted

Author

legacy-anonymous

Created

2019-11-22T18:49:12Z

Updated

2019-11-22T18:49:12Z

<?php

//get_vendor_id_from_url:
//Returns vendor ID from the order ID captured from the URL.
//If the current page is not an order, it rejects the URL and returns -1.
//If by any chance the first item of the order doesn't have a vendor assigned, returns 0. 
function  get_vendor_id_from_url ( ) {
	if (strpos($_SERVER['REQUEST_URI'], "/order-received/")){
		preg_match('/^.*\/order-received\/([0-9]+)\/.*/',$_SERVER['REQUEST_URI'],$order_id);
		$order = wc_get_order( $order_id[1] );
		$author_id = 0;
		foreach ( $order->get_items() as $item ) {
			if ( $item->is_type( 'line_item' ) ) {
				$product = $item->get_product();
				$author_id = get_post_field ( 'post_author' , $product->get_id() );
				break;
			}
		}
	}else{
		$author_id = -1;
	}
	return $author_id;
}

//append_personal_accounts: Adds vendor's account details when payment done.
function  append_personal_accounts ( $account_details) {
	$vendor_id = get_vendor_id_from_url();
	
	$vendor_data = get_user_meta( $vendor_id, 'wcfmmp_profile_settings', true );
	
	if ($vendor_data['payment']['method'] == "bank_transfer"){
		$append_data = array(
			'account_name' => $vendor_data['payment']['bank']['ac_name'],
			'account_number' => $vendor_data['payment']['bank']['ac_number'],
			'bank_name' =>  $vendor_data['payment']['bank']['bank_name'],
			'sort_code' =>"",
			'iban' =>"",
			'bic' =>$vendor_data['payment']['bank']['bic'],
			);
		array_shift($account_details); //Drops first element (the admin's dummy bank account)
		array_push($account_details, $append_data);
    }
    return $account_details;
}

add_filter( 'woocommerce_bacs_accounts', 'append_personal_accounts' ); //f:class-wc-gateway-bacs.php;l:292;
INFO