'' . __( 'Thumb', ATUM_TEXT_DOMAIN ) . '',
'title' => __( 'Name', ATUM_TEXT_DOMAIN ),
'_supplier' => __( 'Supplier', ATUM_TEXT_DOMAIN ),
'_sku' => __( 'SKU', ATUM_TEXT_DOMAIN ),
'_supplier_sku' => __( 'Sup. SKU', ATUM_TEXT_DOMAIN ),
'ID' => __( 'ID', ATUM_TEXT_DOMAIN ),
'calc_type' => '' . __( 'Product Type', ATUM_TEXT_DOMAIN ) . '',
'_regular_price' => __( 'Regular Price', ATUM_TEXT_DOMAIN ),
'_sale_price' => __( 'Sale Price', ATUM_TEXT_DOMAIN ),
'_purchase_price' => __( 'Purchase Price', ATUM_TEXT_DOMAIN ),
);
// Hide the purchase price column if the current user has not the capability.
if ( ! AtumCapabilities::current_user_can( 'view_purchase_price' ) || ! ModuleManager::is_module_active( 'purchase_orders' ) ) {
unset( $args['table_columns']['_purchase_price'] );
}
// Hide the supplier's columns if the current user has not the capability.
if ( ! ModuleManager::is_module_active( 'purchase_orders' ) || ! AtumCapabilities::current_user_can( 'read_supplier' ) ) {
unset( $args['table_columns']['_supplier'] );
unset( $args['table_columns']['_supplier_sku'] );
}
$args['table_columns'] = (array) apply_filters( 'atum/uncontrolled_stock_central_list/table_columns', $args['table_columns'] );
$args['group_members'] = (array) apply_filters( 'atum/uncontrolled_stock_central_list/column_group_members', array(
'product-details' => array(
'title' => __( 'Product Details', ATUM_TEXT_DOMAIN ),
'members' => array(
'thumb',
'title',
'_supplier',
'_sku',
'_supplier_sku',
'ID',
'calc_type',
'_regular_price',
'_sale_price',
'_purchase_price',
),
),
) );
parent::__construct( $args );
}
/**
* Get a list of CSS classes for the WP_List_Table table tag. Deleted 'fixed' from standard function
*
* @since 0.0.2
*
* @return array List of CSS classes for the table tag
*/
protected function get_table_classes() {
$table_classes = parent::get_table_classes();
$table_classes[] = 'stock-central-list';
return $table_classes;
}
/**
* Column for regular price
*
* @since 1.4.1
*
* @param \WP_Post $item The WooCommerce product post to use in calculations.
*
* @return float
*/
protected function column__regular_price( $item ) {
$regular_price = self::EMPTY_COL;
if ( $this->allow_calcs ) {
$regular_price_value = $this->product->get_regular_price();
$regular_price_value = ( is_numeric( $regular_price_value ) ) ? Helpers::format_price( $regular_price_value, [
'trim_zeros' => TRUE,
'currency' => self::$default_currency,
] ) : $regular_price;
$args = apply_filters( 'atum/uncontrolled_stock_central_list/args_regular_price', array(
'meta_key' => 'regular_price',
'value' => $regular_price_value,
'symbol' => get_woocommerce_currency_symbol(),
'currency' => self::$default_currency,
'tooltip' => esc_attr__( 'Click to edit the regular price', ATUM_TEXT_DOMAIN ),
'cell_name' => esc_attr__( 'Regular Price', ATUM_TEXT_DOMAIN ),
), $this->product );
$regular_price = self::get_editable_column( $args );
}
return apply_filters( 'atum/uncontrolled_stock_central_list/column_regular_price', $regular_price, $item, $this->product );
}
/**
* Column for sale price
*
* @since 1.4.1
*
* @param \WP_Post $item The WooCommerce product post to use in calculations.
*
* @return float
*/
protected function column__sale_price( $item ) {
$sale_price = self::EMPTY_COL;
if ( $this->allow_calcs ) {
$sale_price_value = $this->product->get_sale_price();
$sale_price_value = is_numeric( $sale_price_value ) ? Helpers::format_price( $sale_price_value, [
'trim_zeros' => TRUE,
'currency' => self::$default_currency,
] ) : $sale_price;
// phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.FoundInTernaryCondition
$sale_price_dates_from = $this->product->get_date_on_sale_from( 'edit' ) && ( $date = $this->product->get_date_on_sale_from( 'edit' )->getOffsetTimestamp() ) ? date_i18n( 'Y-m-d', $date ) : '';
// phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.FoundInTernaryCondition
$sale_price_dates_to = $this->product->get_date_on_sale_to( 'edit' ) && ( $date = $this->product->get_date_on_sale_to( 'edit' )->getOffsetTimestamp() ) ? date_i18n( 'Y-m-d', $date ) : '';
$args = apply_filters( 'atum/uncontrolled_stock_central_list/args_sale_price', array(
'meta_key' => 'sale_price',
'value' => $sale_price_value,
'symbol' => get_woocommerce_currency_symbol(),
'currency' => self::$default_currency,
'tooltip' => esc_attr__( 'Click to edit the sale price', ATUM_TEXT_DOMAIN ),
'cell_name' => esc_attr__( 'Sale Price', ATUM_TEXT_DOMAIN ),
'extra_meta' => array(
array(
'name' => '_sale_price_dates_from',
'type' => 'text',
'placeholder' => _x( 'Sale date from...', 'placeholder', ATUM_TEXT_DOMAIN ) . ' YYYY-MM-DD',
'value' => $sale_price_dates_from,
'maxlength' => 10,
'pattern' => '[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])',
'class' => 'bs-datepicker from',
),
array(
'name' => '_sale_price_dates_to',
'type' => 'text',
'placeholder' => _x( 'Sale date to...', 'placeholder', ATUM_TEXT_DOMAIN ) . ' YYYY-MM-DD',
'value' => $sale_price_dates_to,
'maxlength' => 10,
'pattern' => '[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])',
'class' => 'bs-datepicker to',
),
),
), $this->product );
$sale_price = self::get_editable_column( $args );
}
return apply_filters( 'atum/uncontrolled_stock_central_list/column_sale_price', $sale_price, $item, $this->product );
}
}