Многие из моих продуктов имеют такие цены, как £3.4560
и т. Д. Мне нужно, чтобы они округлились и разделились до 2 в базе данных.
Выход из 2 десятичных знаков в WooCommerce недостаточен и не работает с плагином Toggle.
Есть ли запрос к базе данных, который может это сделать?
Я видел несколько бит в Rounding и Truncate, но не уверен, как выполнить это, поскольку мои знания плохие.
Любая помощь приветствуется.
Обновление 2: (добавлен некоторый код для очистки всех связанных кэшей переходных процессов)
Ниже приведен код, который обновит все цены на продукт (прежде чем делать резервную копию базы данных):
global $wpdb; $postmeta = $wpdb->prefix . "postmeta"; $posts = $wpdb->prefix . "posts"; // 1. First query: Get all prices $results = $wpdb->get_results( " SELECT $postmeta.* FROM $postmeta INNER JOIN $posts ON $postmeta.post_id = $posts.ID WHERE $posts.post_type LIKE '%product%' AND $postmeta.meta_key LIKE '%price%' AND $postmeta.meta_value != '' ORDER BY $postmeta.meta_id ASC " ); // iterating through each price and update it foreach($results as $result){ $meta_id = $result->meta_id; $post_id = $result->post_id; $meta_key = $result->meta_key; $meta_value = number_format( $result->meta_value, 2 ); // 2. Udating prices query $wpdb->query( $wpdb->prepare( " UPDATE $postmeta SET meta_id = $meta_id, post_id = $post_id, meta_key = '$meta_key', meta_value = '$meta_value' WHERE $postmeta.meta_id = %d ", $meta_id ) ); // 3. Clear all related product transient cached data (refresh prices) wc_delete_product_transients($post_id); }
Код идет в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.
После сохранения просто просмотрите любую страницу своего сайта, проверьте свою базу данных в таблице wp_postmeta, ища
‰price‰ LIKE meta_key
. Теперь вы можете удалить этот код.