WooCommerce - добавление кнопки обзора на странице заказа для клиентов

В моем шаблоне WooCommerce функция "Добавить отзыв" отображается на странице отдельного продукта, как в этой ссылке на веб-сайте:

Это кажется трудным для моих клиентов. Я намерен переместить кнопку "Добавить отзыв" в нижней части страницы просмотра заказа клиента.

Поэтому, когда клиент увидит заказ (с состоянием "выполнено"), он может просто "нажать" на эту новую кнопку, и обзор будет автоматически обновлен для этого приобретенного продукта на его странице отдельного продукта.

Я хотел бы настроить свой шаблон Woocommerce следующим образом:

введите описание изображения здесь

Я добавляю новую кнопку beri testimoni в нижней части страницы заказа просмотра клиента, с этим кодом:

<div class="reviews-form">
    <a href="#review_form" class="element-button element-colorbox"><?php _e('Add Review', 'makery'); ?></a>
</div>
<div class="site-popups hidden">
    <div id="review_form">
        <div class="site-popup large">
            <div class="site-form">
                <?php
                $commenter=wp_get_current_commenter();

                $comment_form=array(
                    'title_reply' => '',
                    'title_reply_to' => '',
                    'comment_notes_before' => '',
                    'comment_notes_after' => '',
                    'fields' => array(
                        'author' => '<div class="column fourcol static"><label for="author">'.__('Name', 'makery').'</label></div><div class="eightcol column static last"><div class="field-wrap"><input id="author" name="author" type="text" value="'.esc_attr($commenter['comment_author']).'" size="30" aria-required="true" /></div></div>',
                        'email' => '<div class="column fourcol static"><label for="email">'.__('Email', 'makery').'</label></div><div class="eightcol column static last"><div class="field-wrap"><input id="email" name="email" type="text" value="'.esc_attr($commenter['comment_author_email']).'" size="30" aria-required="true" /></div></div>',
                    ),
                    'label_submit' => __('Kirim', 'makery'),
                    'name_submit' => 'submit',
                    'class_submit' => '',
                    'logged_in_as' => '',
                    'comment_field' => '',
                );

                if(get_option('woocommerce_enable_review_rating')=== 'yes'){
                    $comment_form['comment_field']='<div class="column fourcol static"><label for="rating">'.__('Rating', 'makery').'</label></div>
                    <div class="column eightcol static last"><div class="element-select"><span></span>
                    <select name="rating" id="rating">
                        <option value="">&ndash;</option>
                        <option value="5">'.__('Puas!', 'makery').'</option>
                        <option value="4">'.__('Keren, tapi...', 'makery').'</option>
                        <option value="3">'.__('Bagus', 'makery').'</option>
                        <option value="2">'.__('Lumayan, tapi...', 'makery').'</option>
                        <option value="1">'.__('Jelek!', 'makery').'</option>
                    </select></div></div><div class="clear"></div>';
                }

                $comment_form['comment_field'].= '<textarea id="comment" name="comment" cols="45" rows="6" aria-required="true" placeholder="'.__('Review', 'makery').'"></textarea>';
                comment_form(apply_filters('woocommerce_product_review_comment_form_args', $comment_form));
                ?>
            </div>
        </div>
    </div>
</div>
<!-- /popups -->

Примечание: этот код совпадает с кодом "добавить отзыв" на странице одного товара.

Но это производит некоторые ошибки и не работает...

Что я делаю не так?
Как я мог это исправить?

Спасибо

1 ответ

Вставьте приведенный выше код в файл function.php. Кнопка обзора будет создана прямо на странице истории ваших заказов: https://my-domain/my-account/orders.

      function custom_add_review_link_to_my_account( $actions, $order ) {
if ( ! $order || ! is_user_logged_in() ) {
    return $actions;
}

$order_id = $order->get_id();
$order_status = $order->get_status();
$reviewed = get_post_meta( $order_id, '_reviewed', true );

if ( $order_status === 'completed' && ! $reviewed ) {
    $items = $order->get_items();
    $product_id = 0;
    foreach ( $items as $item ) {
        $product_id = $item->get_product_id();
        break;
    }
    $product_url = get_permalink( $product_id );
    if ( $product_url ) {
        $actions['review'] = array(
            'url'  => $product_url . '#reviews',
            'name' => '★★★★★',
        );
    }
}

return $actions; } add_filter( 'woocommerce_my_account_my_orders_actions', 'custom_add_review_link_to_my_account', 10, 2 );
Другие вопросы по тегам