Skip to content

Instantly share code, notes, and snippets.

@xadapter
Last active September 19, 2019 07:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xadapter/f471f8266b21d68720c4d4d474e468bd to your computer and use it in GitHub Desktop.
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/
/**
* 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