public static function create($shipment_source_obj) { switch ($shipment_source_obj->shipping_service) { case '': $tracking_obj = null; break; case 'wf_usps': WfTrackingFactory::wf_include_once('WfTrackingUSPS', 'class-wf-tracking-usps.php'); $tracking_obj = new WfTrackingUSPS(); break; case 'wf_canada_post': WfTrackingFactory::wf_include_once('WfTrackingCanadaPost', 'class-wf-tracking-canadapost.php'); $tracking_obj = new WfTrackingCanadaPost(); break; default: WfTrackingFactory::wf_include_once('WfTrackingDefault', 'class-wf-tracking-default.php'); $tracking_obj = new WfTrackingDefault(); break; } if (null != $tracking_obj) { $tracking_obj->init($shipment_source_obj); } return $tracking_obj; }