Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Кликабельность товара в письме о новом заказе

Тема в разделе "Вопросы, советы и доработки.", создана пользователем jamaster, 7 дек 2016.

  1. jamaster

    jamaster

    Сообщения:
    72
    Симпатии:
    2
    Баллы:
    8
    Уважаемые ребята! помогите с решением проблемы!

    как можно сделать в письме о новом заказе, чтобы название товара был кликабельным и ссылался на товар на сайте?

    скрин во вложении о чем я толкую )

    Заранее благодарю
     

    Вложения:

  2. websplanet

    websplanet

    Сообщения:
    3
    Симпатии:
    2
    Баллы:
    3
    Привет!
    Замени файл в теме /emails/admin-new-order.php
    на это:
    Код:
    <?php do_action( 'woocommerce_email_header', $email_heading ); ?>
    
    <p><?php printf( __( 'Был получен новый заказ от %s. Подробности заказа ниже:', 'woocommerce' ), $order->billing_first_name . ' ' . $order->billing_last_name ); ?></p>
    
    <?php do_action( 'woocommerce_email_before_order_table', $order, true, false ); ?>
    
    <h2><a href="<?php echo admin_url( 'post.php?post=' . $order->id . '&action=edit' ); ?>"><?php printf( __( 'Order: %s', 'woocommerce'), $order->get_order_number() ); ?></a> (<?php printf( '<time datetime="%s">%s</time>', date_i18n( 'c', strtotime( $order->order_date ) ), date_i18n( wc_date_format(), strtotime( $order->order_date ) ) ); ?>)</h2>
    
    <table cellspacing="0" cellpadding="6" style="width: 100%; border: 1px solid #eee;" border="1" bordercolor="#eee">
        <thead>
            <tr>
                <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Product', 'woocommerce' ); ?></th>
                <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Quantity', 'woocommerce' ); ?></th>
                <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Price', 'woocommerce' ); ?></th>
            </tr>
        </thead>
        <tbody>
            <?php echo $order->email_order_items_table( false, true ); ?>
        </tbody>
        <tfoot>
            <?php
                if ( $totals = $order->get_order_item_totals() ) {
                    $i = 0;
                    foreach ( $totals as $total ) {
                        $i++;
                        if($i!=1):
                        ?><tr>
                            <th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 2 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th>
                            <td style="text-align:left; border: 1px solid #eee; <?php if ( $i == 2 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['value']; ?></td>
                        </tr><?php
                        endif;
                    }
                }
            ?>
        </tfoot>
    </table>
    
    <?php do_action( 'woocommerce_email_after_order_table', $order, true, false ); ?>
    <p>&nbsp;</p><strong>
    <?php do_action( 'woocommerce_email_order_meta', $order, true, false ); ?>
    </strong>
    <h2><?php _e( 'Customer details', 'woocommerce' ); ?></h2>
    
    <?php if ( $order->billing_email ) : ?>
        <p><strong><?php _e( 'Email:', 'woocommerce' ); ?></strong> <?php echo $order->billing_email; ?></p>
    <?php endif; ?>
    <?php if ( $order->billing_phone ) : ?>
        <p><strong><?php _e( 'Tel:', 'woocommerce' ); ?></strong> <?php echo $order->billing_phone; ?></p>
    <?php endif; ?>
    
    <?php wc_get_template( 'emails/email-addresses.php', array( 'order' => $order ) ); ?>
    
    <?php do_action( 'woocommerce_email_footer' ); ?>
    
     
    • Нравится Нравится x 1
  3. jamaster

    jamaster

    Сообщения:
    72
    Симпатии:
    2
    Баллы:
    8

    большое спасибо!
     
  4. jamaster

    jamaster

    Сообщения:
    72
    Симпатии:
    2
    Баллы:
    8
    а есть вариант сделать эту же фичу в письме которая приходит клиенту?
     
  5. websplanet

    websplanet

    Сообщения:
    3
    Симпатии:
    2
    Баллы:
    3
    Я не весь код добавил!
    Так же необходимо добавить в файл /emails/email-order-items.php это:
    Код:
    // Title
        echo apply_filters( 'woocommerce_order_item_name', $item['name'], $item );
    
    ЗАМЕНИТЬ НА ЭТО:
    
    echo '<a href="'.get_permalink($_product->id).'">';
    echo apply_filters( 'woocommerce_order_item_name', $item['name'], $item );
    echo '</a>';
     
    • Нравится Нравится x 1
  6. websplanet

    websplanet

    Сообщения:
    3
    Симпатии:
    2
    Баллы:
    3
    И по аналогии с первым постом сделать письмо, которое клиенту приходит ))))

    В принципе, это я делал для себя и кое-что из письма убирал!

    Для ваших нужд достаточно добавления ссылки в файл order-item
     
  7. belfer

    belfer

    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Как можно добавить ссылку в письмо, в которой будут переменные с данными о заказе, такие как номер заказа, ФИО, общая стоимость? Это надо для последующего заполнения полей input через метод GET.