Last active
September 19, 2019 07:00
-
-
Save xadapter/f471f8266b21d68720c4d4d474e468bd to your computer and use it in GitHub Desktop.
Snippet to update PO Number, Invoice Number and Recipient Tax number using WooCommerce FedEx Shipping Plugin with Print Label - https://www.pluginhive.com/product/woocommerce-fedex-shipping-plugin-with-print-label/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Snippet to update PO Number, Invoice Number and Recipient Tax number. | |
* Created at : 30 July 2018 | |
* Updated at : 06 Aug 2018 | |
* PluginHive Plugins : https://www.pluginhive.com/plugins/ | |
* Gist Link : https://gist.github.com/xadapter/f471f8266b21d68720c4d4d474e468bd | |
*/ | |
add_filter('wf_fedex_request','wf_fedex_label_request_reff_callback', 10, 2 ); | |
function wf_fedex_label_request_reff_callback($request,$order){ | |
$po_number = $order->get_meta('customer_po'); // Give Purchase Order here | |
$inv_number = $order->get_order_number(); // Give Invoice number here, x if you don't want | |
$tax_number = $order->get_meta('billing_abn'); // Give Tax number here | |
$customs_duties_payer = 'SENDER'; // Give $customs duties payer here | |
$tin_type = 'PERSONAL_STATE'; // Tax Identification number type BUSINESS_NATIONAL, BUSINESS_STATE, BUSINESS_UNION, PERSONAL_NATIONAL, PERSONAL_STATE | |
$reff = array(); | |
if( !empty($po_number) && $po_number!='x' ) | |
$reff['CustomerReferences'][] = array( 'CustomerReferenceType' => 'P_O_NUMBER', 'Value' => $po_number ); | |
if( !empty($inv_number) && $inv_number!='x' ) | |
$reff['CustomerReferences'][] = array( 'CustomerReferenceType' => 'INVOICE_NUMBER', 'Value' => $inv_number ); | |
$reff['CustomerReferences'][] = array( 'CustomerReferenceType' => 'CUSTOMER_REFERENCE', 'Value' => $order->id ); | |
if( !empty($customs_duties_payer) ) | |
$reff['CustomerReferences'][] = array( 'CustomerReferenceType' => 'DEPARTMENT_NUMBER', 'Value' => 'Bill Duties : '.$customs_duties_payer); | |
foreach ($request['RequestedShipment']['RequestedPackageLineItems'] as $key => $value) { | |
$request['RequestedShipment']['RequestedPackageLineItems'][$key] = array_merge($request['RequestedShipment']['RequestedPackageLineItems'][$key], $reff); | |
} | |
$request['RequestedShipment']['Recipient']['Tins'] = array( | |
'TinType' => $tin_type, | |
'Number' => $tax_number, | |
); | |
// To update in Commercial Invoice | |
if( ! empty($request['RequestedShipment']['CustomsClearanceDetail']['CommercialInvoice']) ) { | |
if( ! empty($inv_number) ) { | |
$request['RequestedShipment']['CustomsClearanceDetail']['CommercialInvoice']['CustomerReferences'][] = array( | |
'CustomerReferenceType' => 'INVOICE_NUMBER', | |
'Value' => $inv_number, | |
); | |
} | |
if( ! empty($po_number) ) { | |
$request['RequestedShipment']['CustomsClearanceDetail']['CommercialInvoice']['CustomerReferences'][] = array( | |
'CustomerReferenceType' => 'P_O_NUMBER', | |
'Value' => $po_number, | |
); | |
} | |
} | |
return $request; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment