get_meta( '_preorder_date' );
if ( $preorderDate ) {
echo '
Preorder Date: ' . $preorderDate . '';
}
}
/**
* @param $columns
* @return mixed
*/
public function preorderCustomColumn( $columns ) {
$newColumns = [];
foreach ( $columns as $columnName => $columnInfo ) {
$newColumns[$columnName] = $columnInfo;
if ( 'order_total' === $columnName ) {
$newColumns['order_preorder_date'] = __( 'Preorder Date', 'pre-orders-for-woocommerce' );
}
}
return $newColumns;
}
/**
* @param $order
* @return null
*/
public function getPreOrderDate( $order ) {
if ( !$order ) {return;}
if ( is_object( $order ) && ( $order instanceof \WC_Order ) ) {
// already order object
} else {
if ( is_object( $order ) && ( $order instanceof \WP_POST ) ) {
$order = wc_get_order( $order->ID );
} else {
$order = wc_get_order( $order );
}
if ( !$order ) {return;}
}
if ( $order->get_meta( 'preorder_date' ) == '' && $order->get_meta( '_preorder_date' ) == '' ) {
return;
}
$metaKey = ( $order->get_meta( '_preorder_date' ) != '' ) ? '_preorder_date' : 'preorder_date';
$shippingDate = strtotime( $order->get_meta( $metaKey ) );
$now = time();
$diff = round( ( $shippingDate - $now ) / ( 60 * 60 * 24 ) );
if ( $diff > 0 ) {
return sprintf(
/* translators: number of days. */
__( 'Available in %s days', 'pre-orders-for-woocommerce' ), $diff
);
} elseif ( 0 == $diff ) {
return __( 'Available today', 'pre-orders-for-woocommerce' );
} else {
return __( 'Already shipped', 'pre-orders-for-woocommerce' );
}
}
/**
* @param $column
*/
public function preorderCustomColumnContent( $column, $order ) {
if ( 'order_preorder_date' === $column ) {
echo $this->getPreOrderDate( $order );
}
}
}