Calculated Fields
Calculated fields are read-only and can be used to display information that is helpful when bulk editing products. Follow these instructions to add a calculated field to the Bulk Editor:
1. Download the free Code Snippets plugin: https://wordpress.org/plugins/code-snippets/
2. Create a Snippet with the following code (Note: If you are more comfortable with editing your functions.php you can do that instead of Code Snippets.):
function pwbe_product_columns_atum_inbound_stock( $columns ) { $columns[] = array( 'name' => 'Calculated Field', 'type' => 'text', 'table' => 'calculated', 'field' => 'example_calculated_field', 'visibility' => 'both', 'readonly' => true, 'sortable' => 'false' ); return $columns; } function pwbe_results_product_atum_inbound_stock( $pwbe_product, $column ) { if ( $column['field'] == 'example_calculated_field' ) { // Display regular price with a 10% increase. $result = $pwbe_product->_regular_price * 1.10; $pwbe_product->example_calculated_field = $result; } return $pwbe_product; } add_filter( 'pwbe_product_columns', 'pwbe_product_columns_atum_inbound_stock' ); add_filter( 'pwbe_results_product', 'pwbe_results_product_atum_inbound_stock', 10, 2 );
Example: ATUM Inbound Stock
If you use the ATUM Inventory Stock Management plugin, you can add the Inbound Stock calculated field using the following snippet:
function pwbe_product_columns_atum_inbound_stock( $columns ) { $columns[] = array( 'name' => 'Inbound Stock', 'type' => 'text', 'table' => 'calculated', 'field' => 'atum_inbound_stock', 'visibility' => 'both', 'readonly' => true, 'sortable' => 'false' ); return $columns; } function pwbe_results_product_atum_inbound_stock( $pwbe_product, $column ) { if ( $column['field'] == 'atum_inbound_stock' ) { $atum_product = \Atum\Inc\Helpers::get_atum_product( $pwbe_product->post_id ); $inbound_stock = $atum_product->get_inbound_stock(); $pwbe_product->atum_inbound_stock = $inbound_stock; } return $pwbe_product; } add_filter( 'pwbe_product_columns', 'pwbe_product_columns_atum_inbound_stock' ); add_filter( 'pwbe_results_product', 'pwbe_results_product_atum_inbound_stock', 10, 2 );