Add delivery date and time to WooCommerce Print Invoices/Packing Lists by SkyVerge

To add the delivery date and time from WooCommere Delivery Slots to your invoices and packing slips generated by the "WooCommerce Print Invoices/Packing Lists" by SkyVerge, you can use the following code.

To use the code, add it to your child theme's functions.php file.

/**
 * Adds Delivery date and time slot to the "Shipping Method" section of invoices and packing lists
 * 'Show shipping method' should be enabled for invoices!
 *
 * @param string    $shipping      the shipping method text
 * @param string    $document_type the type of document being viewed
 * @param \WC_Order $order         the order object the document is for
 *
 * @return string the updated shipping string
 */
function iconic_pip_add_delivery_date_shipping( $shipping, $document_type, $order ) {
	// if you want to only add this to invoices, you can add another check for document type
	// if ( 'invoice' !== $document_type ) { 
		return $shipping; 
	}

	// bail if Delivery Slots plugin is not active
	if ( ! class_exists( 'Iconic_WDS' ) ) {
		return $shipping;
	}

	$order_id  = is_callable( array( $order, 'get_id' ) ) ? $order->get_id() : $order->id;
	$date      = get_post_meta( $order_id, 'jckwds_date', true );
	$time_slot = get_post_meta( $order_id, 'jckwds_timeslot', true );

	if ( $date ) {
		$shipping .= '<p>';
		$shipping .= sprintf( __( 'We will try our best to deliver your order on: %s', 'iconic' ), $date );

		if ( $time_slot ) {
			$shipping .= sprintf( ' %s %s', __( 'at', 'iconic' ), $time_slot );
		}

		$shipping .= '</p>';
	}

	return $shipping;
}

add_filter( 'wc_pip_document_shipping_method', 'iconic_pip_add_delivery_date_shipping', 10, 3 );

You will now be able to see the delivery date and time slot on your invoices and packing slips.

Screen Shot 2020-03-30 at 14.41.31.png

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.