woocommerce-multilingual
/
compatibility
/
WcBulkStockManagement
/
class-wcml-bulk-stock-management.php
class-wcml-bulk-stock-management.php
41 lines
| 1 | <?php |
| 2 | class WCML_Bulk_Stock_Management implements \IWPML_Action { |
| 3 | |
| 4 | public function add_hooks() { |
| 5 | if ( is_admin() && isset( $_GET['page'] ) && $_GET['page'] == 'woocommerce-bulk-stock-management' ) { |
| 6 | global $sitepress; |
| 7 | remove_action( 'admin_enqueue_scripts', [ $sitepress, 'language_filter' ] ); |
| 8 | } |
| 9 | |
| 10 | add_action( 'wc_bulk_stock_after_process_qty', [ $this, 'wc_bulk_stock_after_process_qty_action' ], 10, 1 ); |
| 11 | } |
| 12 | |
| 13 | public function wc_bulk_stock_after_process_qty_action( $id ) { |
| 14 | global $sitepress; |
| 15 | |
| 16 | $new_quantity = get_post_meta( $id, '_stock', true ); |
| 17 | |
| 18 | if ( is_numeric( $new_quantity ) ) { |
| 19 | |
| 20 | $new_stock_status = ( $new_quantity > 0 ) ? 'instock' : 'outofstock'; |
| 21 | wc_update_product_stock_status( $id, $new_stock_status ); |
| 22 | |
| 23 | $trid = $sitepress->get_element_trid( $id, 'post_product' ); |
| 24 | if ( is_numeric( $trid ) ) { |
| 25 | $translations = $sitepress->get_element_translations( $trid, 'post_product' ); |
| 26 | |
| 27 | if ( is_array( $translations ) ) { |
| 28 | foreach ( $translations as $translation ) { |
| 29 | if ( ! isset( $translation->element_id ) || $translation->element_id == $id ) { |
| 30 | continue; |
| 31 | } |
| 32 | update_post_meta( $translation->element_id, '_stock', $new_quantity ); |
| 33 | wc_update_product_stock_status( $translation->element_id, $new_stock_status ); |
| 34 | } |
| 35 | } |
| 36 | } |
| 37 | } |
| 38 | |
| 39 | } |
| 40 | } |
| 41 |