В плагине capabilities должны стоять разрешения в группе WordPress Core — unfiltered html, unfiltered upload.
woocommerce показывать цены вариаций
У woocommerce есть одна особенность при одинаковой цене всех вариаций товара. В таком случае цена товара не будет показываться в карточке. Для того, чтобы принудительно вывести цену нужно добавить следующий фильтр
1 2 3 4 5 6 7 |
add_filter('woocommerce_available_variation', function($available_variations, \WC_Product_Variable $variable, \WC_Product_Variation $variation) { if (empty($available_variations['price_html'])) { $available_variations['price_html'] = '<span class="price">' . $variation->get_price_html() . '</span>'; } return $available_variations; }, 10, 3); |
Плагин отчетов woocommerce
WooCommerce PDF Invoices & Packing Slips
404 для attachment страниц
В случае, если из-за ошибок в сео (например из-за неверных настроек плагина aio) в выдачу попали страницы вложений — нужно настроить для них код ответа 404
1 2 3 4 5 6 7 8 9 10 11 12 |
/**Редирект со страницы вложения attachment на страницу 404**/ add_action('template_redirect', 'template_redirect_attachment'); function template_redirect_attachment() { global $post; if (is_attachment()) { wp_redirect(get_permalink($post->post_parent)); status_header( 404 ); nocache_headers(); include( get_query_template( '404' ) ); die(); } } |
Отдельная иконка для pdf
Для того, чтобы при прямом обращении вордпресс к файлам типа pdf отображалась пользовательская иконка вместо стандартной необходимо разместить в корне сайта файл favicon.ico
Добавить колонку «Товары» в страницу с заказами
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
add_filter('manage_edit-shop_order_columns', 'misha_order_items_column' ); function misha_order_items_column( $order_columns ) { $order_columns['order_products'] = "Purchased products"; return $order_columns; } add_action( 'manage_shop_order_posts_custom_column' , 'misha_order_items_column_cnt' ); function misha_order_items_column_cnt( $colname ) { global $the_order; // the global order object if( $colname == 'order_products' ) { // get items from the order global object $order_items = $the_order->get_items(); if ( !is_wp_error( $order_items ) ) { foreach( $order_items as $order_item ) { echo $order_item['quantity'] .' × <a href="' . admin_url('post.php?post=' . $order_item['product_id'] . '&action=edit' ) . '">'. $order_item['name'] .'</a><br />'; // you can also use $order_item->variation_id parameter // by the way, $order_item['name'] will display variation name too } } } } |
Обновить префиксы таблиц wp
На момент, когда у меня возникла необходимость для повышения степени безопасности сайта изменить префиксы таблиц плагин который указывался в большинстве статей change-db-prefix просто ложил сайт, приходилось восстанавливать.
Рабочим оказался плагин Brozzme DB PREFIX
woocommerce определение страны пользователя
Для определения кода страны пользователя смотрящего сайт
1 2 |
$location = WC_Geolocation::geolocate_ip(); $country = $location['country']; |
Для определения страны пользователя оставившего отзыв
1 2 |
$location = WC_Geolocation::geolocate_ip(get_comment_author_IP()); $country = $location['country']; |
Далее получив код страны, например, ‘US’ можно вставлять соответствующий флаг либо выводить необходимую строку с названием страны.
Редактор wp удаляет p теги. Что делать.
Для того, чтобы редкатор вордпресс не удалял теги параграфа и переноса необходимо установить плагин Advanced Editor Tools и в нем активировать опцию «Stop removing the <p> and <br /> tags when saving and show them in the Text editor
«
woocommerce вывод отзывов на главной
Если необходимо вывести определенное количество отзывов в определенном месте шаблона или на определенной странице, то можно воспользоваться следующим кодом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
function get_woo_reviews() { $comments = get_comments( array( 'status' => 'approve', 'post_status' => 'publish', 'post_type' => 'product', ) ); shuffle($comments); $comments = array_slice( $comments, 0, 5 ); $html = '<ul>'; foreach( $comments as $comment ) : $html .= '<li><h2>'.get_the_title( $comment->comment_post_ID ).'</h2>'; $html .= '<p>' .$comment->comment_content.'</p>'; $html .= "<p>Posted By :".$comment->comment_author." On ".$comment->comment_date. "</p></li>"; endforeach; $html .= '</ul>'; ob_start(); echo $html; $html = ob_get_contents(); ob_end_clean(); return $html; } add_shortcode('woo_reviews', 'get_woo_reviews'); |
И потом использовать:
1 |
echo do_shortcode( "[woo_reviews]" ); |