YITH WooCommerce Wishlist: Помогите мне показать первый эскиз элемента / продукта в виджете боковой панели и управлять списками пожеланий? - PullRequest
3 голосов
/ 23 мая 2019

Я использую YITH Wishlist в WooCommerce, WordPress.

В отдельном списке пожеланий - отображается изображение с «удалением из списка», названием продукта и ссылкой на отдельный продукт.

Таким образом, поднявшись на один уровень выше «папок», когда я отображаю отдельные списки желаний на странице «Управление списками желаний», я могу только показать название списка и ссылку на этот отдельный список, где вы можетеувидеть все продукты сгруппированы.Здесь я хочу, чтобы я мог отобразить первое изображение или первое изображение этого отдельного списка пожеланий.

Я неоднократно пробовал и нарушал сценарий.Есть ли кто-нибудь, кто может помочь мне собрать сценарий, который захватит это изображение и позволит мне отобразить его на странице управления списками желаний?Еще лучше, кто-нибудь знает шорткод, который делает это для меня (если есть такая вещь)?

Вот довольно много соответствующих шаблонов файлов ...

ЭТО СТРАНИЦА УПРАВЛЕНИЯШАБЛОН (ЕСЛИ ВЫ Ctrl + F для «Я ХОЧУ ПОКАЗАТЬ ИЗОБРАЖЕНИЕ ЗДЕСЬ», чтобы увидеть, куда я хочу перетащить изображение) - ГДЕ Я ХОЧУ ОТОБРАЖИТЬ ИЗОБРАЖЕНИЕ:

    <?php
    /**
     * Wishlist manage template
     *
     * @author Your Inspiration Themes
     * @package YITH WooCommerce Wishlist
     * @version 2.0.5
     */

    if ( ! defined( 'YITH_WCWL' ) ) {
        exit;
    } // Exit if accessed directly
    ?>
<form id="yith-wcwl-form" action="<?php echo esc_url( YITH_WCWL()->get_wishlist_url( 'manage' ) ) ?>" method="post">
    <!-- TITLE -->
    <?php
        do_action( 'yith_wcwl_before_wishlist_title' );

        if( ! empty( $page_title ) ) {
            echo apply_filters( 'yith_wcwl_wishlist_title', '<h2 class="h1 blue lh2 mt2 mb0 p0">Manage My Boards</h2>' );
        }

        do_action( 'yith_wcwl_before_wishlist_manage' );
        ?>
    <table class="shop_table cart wishlist_table wishlist_manage_table" cellspacing="0" >
        <thead>
            <tr>
                <th class="wishlist-name">
                    <span class="nobr">
                    Boards
                    <?php // echo apply_filters( 'yith_wcwl_wishlist_manage_name_heading', __( 'Wishlists', 'yith-woocommerce-wishlist' ) ) ?>
                    </span>
                </th>
                <?php /* ?>
                <th class="wishlist-privacy">
                    <span class="nobr">
                    <?php echo apply_filters( 'yith_wcwl_wishlist_manage_privacy_heading', __( 'Privacy', 'yith-woocommerce-wishlist' ) ) ?>
                    </span>
                </th>
                <?php */ ?>
                <th class="wishlist-delete">
                    <span class="nobr">
                    <?php echo apply_filters( 'yith_wcwl_wishlist_manage_delete_heading', __( 'Delete', 'yith-woocommerce-wishlist' ) ) ?>
                    </span>
                </th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="wishlist-name">
                    <a title="<?php echo $default_wishlist_title ?>" class="wishlist-anchor" href="<?php echo YITH_WCWL()->get_wishlist_url( 'user' . '/' . $current_user_id ) ?>">
                    <?php echo $default_wishlist_title ?>
                    </a>
                </td>
                <?php /* ?>
                <td class="wishlist-privacy">
                    <?php echo apply_filters( 'yith_wcwl_wishlist_manage_default_privacy', __( 'Public', 'yith-woocommerce-wishlist' ) )?>
                </td>
                <?php */ ?>
                <td class="wishlist-delete"></td>
            </tr>
            <?php
                $wishlist_count = 0;
                if( ! empty( $user_wishlists ) ):
                ?>
            <?php foreach( $user_wishlists as $wishlist ): ?>
            <?php if( ! $wishlist['is_default'] ): ?>
            <tr>
                <td class="wishlist-name">
                    <a title="<?php echo $wishlist['wishlist_name'] ?>" class="wishlist-anchor" href="<?php echo YITH_WCWL()->get_wishlist_url( 'view' . '/' . $wishlist['wishlist_token'] ) ?>">
                    <!-- I WANT TO SHOW IMAGE HERE (OF THE FIRST PRODUCT IN THE WISHLIST CURRENTLY BEING LOOPED THROUGH) -->
                    <?php echo $wishlist['wishlist_name'] ?>
                    </a>
                </td>
                <?php /* ?>
                <td class="wishlist-privacy">
                    <select name="wishlist_options[<?php echo $wishlist['ID'] ?>][wishlist_privacy]" class="wishlist-visibility selectBox">
                        <option value="0" class="public-visibility" <?php selected( $wishlist['wishlist_privacy'], 0 ) ?> ><?php echo apply_filters( 'yith_wcwl_public_wishlist_visibility', __( 'Public', 'yith-woocommerce-wishlist' ) )?></option>
                        <option value="1" class="shared-visibility" <?php selected( $wishlist['wishlist_privacy'], 1 ) ?> ><?php echo apply_filters( 'yith_wcwl_shared_wishlist_visibility', __( 'Shared', 'yith-woocommerce-wishlist' ) )?></option>
                        <option value="2" class="private-visibility" <?php selected( $wishlist['wishlist_privacy'], 2 ) ?> ><?php echo apply_filters( 'yith_wcwl_private_wishlist_visibility', __( 'Private', 'yith-woocommerce-wishlist' ) )?></option>
                    </select>
                </td>
                <?php */ ?>
                <td class="wishlist-delete">
                    <!-- <input type="checkbox" value="yes" name="wishlist_options[<?php echo $wishlist['ID'] ?>][delete]"/> -->
                    <a class="button" href="<?php echo esc_url( add_query_arg( 'wishlist_id', $wishlist['ID'], wp_nonce_url( YITH_WCWL()->get_wishlist_url( 'manage' ), 'yith_wcwl_delete_action', 'yith_wcwl_delete' ) ) ) ?>"><?php _e( 'Delete', 'yith-woocommerce-wishlist' ) ?></a>
                </td>
            </tr>
            <?php
                $wishlist_count ++;
                    endif;
                ?>
            <?php endforeach; ?>
            <?php endif; ?>
        </tbody>
        <tfoot>
            <tr>
                <td colspan="3">
                    <a class="btn button create-new-wishlist" href="<?php echo YITH_WCWL()->get_wishlist_url( 'create' ) ?>">
                    <?php echo apply_filters( 'yith_wcwl_create_new_wishlist_icon', '<i class="icon-plus"></i>' )?>
                    <?php echo apply_filters( 'yith_wcwl_create_new_wishlist_title', __( 'Create a new board', 'yith-woocommerce-wishlist' ) )?>
                    </a>
                    <?php if( ! empty( $user_wishlists ) && $wishlist_count ): ?>
                    <button class="submit-wishlist-changes">
                    <?php echo apply_filters( 'yith_wcwl_mange_wishlist_icon', '<i class="icon-ok"></i>' )?>
                    <?php _e( 'Save Settings', 'yith-woocommerce-wishlist' ) ?>
                    </button>
                    <?php endif; ?>
                </td>
            </tr>
        </tfoot>
    </table>
    <?php wp_nonce_field( 'yith_wcwl_manage_action', 'yith_wcwl_manage' )?>
    <?php do_action( 'yith_wcwl_after_wishlist_manage' ); ?>
</form>

ЭТО ИНДИВИДУАЛЬНАЯ СТРАНИЦА СПИСКА,С РАБОЧИМ ПОКАЗОМ ИЗОБРАЖЕНИЯ ИЗОБРАЖЕНИЯ ПРОДУКТА (ctrl + f «ПОЛУЧИТЬ ИЗОБРАЖЕНИЕ УСПЕШНО», чтобы перейти к соответствующему коду) - ГДЕ МОЖНО УВИДЕТЬ РАБОЧИЙ ПРИМЕР ИЗГОТОВЛЕНИЯ ИЗОБРАЖЕНИЯ ИЗ ПРОДУКТА ЧЕРЕЗ:

<?php
    /**
     * Wishlist page template
     *
     * @author Your Inspiration Themes
     * @package YITH WooCommerce Wishlist
     * @version 2.0.12
     */

    if ( ! defined( 'YITH_WCWL' ) ) {
        exit;
    } // Exit if accessed directly
    ?>
<script type="text/javascript">
    var root = document.documentElement;
    root.className += ' wishlist-view';
</script>
<?php do_action( 'yith_wcwl_before_wishlist_form', $wishlist_meta ); ?>
<?php
    function cmp($a, $b) {
      if ($a == $b) {
        return 0;
      }
      return ($a < $b) ? -1 : 1;
    }

    uasort($users_wishlists, 'cmp');
    ?>
<?php /* ?>
<pre><code>
  <?php
    print_r($wishlist_items);
    // print_r($users_wishlists);
    ?>
Все доски 0):?> Edit Board <?php else : ?> <?php endif; ?>
">'.$ page_title.'');?> ')?>
')?> ')?> 0): $ Added_items = array ();foreach ($ wishlist_items как $ item): глобальный $ product;$ item ['prod_id'] = yit_wpml_object_id ($ item ['prod_id'], 'product', true);if (in_array ($ item ['prod_id'], $ Added_items)) {continue;} $ add_items [] = $ item ['prod_id'];$ product = wc_get_product ($ item ['prod_id']);$ available = $ product-> get_availability ();$ stock_status = $ Availability ['Class'];if ($ product && $ product-> exist ()):?>">get_image ()?>get_title (), $ product)?> " class="remove remove_item_from_wishlist" title="<?php _e( 'Remove this product', 'yith-woocommerce-wishlist' ) ?>"> × 1 && $ move_to_another_wishlist && $ is_user_owner):?> <? PHP $ column_count ++; ENDIF; ?> <? php if ($ is_user_owner):?> <? PHP $ column_count ++; ENDIF; ?> <? php echo apply_filters ('yith_wcwl_wishlist_view_name_heading', __ ('Имя продукта', 'yith-woocommerce-wishlist'))?> <? php if ($ show_price):?> <? php echo apply_filters ('yith_wcwl_wishlist_view_price_heading', __ ('Цена за единицу товара', 'yith-woocommerce-wishlist'))?> <? PHP $ column_count ++; ENDIF; ?> <? php if ($ show_stock_status):?> <? php echo apply_filters ('yith_wcwl_wishlist_view_stock_heading', __ ('Состояние запаса', 'yith-woocommerce-wishlist'))?> <? PHP $ column_count ++; ENDIF; ?> <? php if ($ show_last_column):?> <? PHP $ column_count ++; ENDIF; ?> <? PHP if (count ($ wishlist_items)> 0): $ Added_items = array (); foreach ($ wishlist_items как $ item): глобальный продукт $; $ item ['prod_id'] = yit_wpml_object_id ($ item ['prod_id'], 'product', true); if (in_array ($ item ['prod_id'], $ Added_items)) { Продолжить; } $ add_items [] = $ item ['prod_id']; $ product = wc_get_product ($ item ['prod_id']); $ available = $ product-> get_availability (); $ stock_status = $ Availability ['Class']; if ($ product && $ product-> exist ()): ?> " data-row-id = "<? php echo $ item ['prod_id']?>"> <? php if ($ show_cb):?> " name = "add_to_cart []" <? php echo (! $ product-> is_type ('simple') ) 'disabled = "disabled"': ''?> /> <? php endif?> <? php if ($ is_user_owner):?> <? php endif; ?> "> <! - ЭТО ХОТИТЕ ИЗОБРАЖЕНИЕ УСПЕШНО -> <? php echo $ product-> get_image ()?>

<? php echo apply_filters ('woocommerce_in_cartproduct_obj_title', $ product-> get_title (), $ product)?>

<? php do_action ('yith_wcwl_table_after_product_name', $ item); ?>
<? php / *?> ">get_title (), $ product)?> is_type ('variable')?$ product-> get_variation_regular_price ('max'): $ product-> get_price ();echo $ base_product?$ product-> get_price_html (): apply_filters ('yith_free_text', __ ('Free!', 'yith-woocommerce-wishlist'));?> '.__ («Нет в наличии», «Список желаний»).'': ' '.__ («На складе», «yith-woocommerce-wishlist»).'';?> '.sprintf (__ ('Добавлено в:% s', 'yith-woocommerce-wishlist'), date_i18n (get_option ('date_format'), strtotime ($ item ['dateadded']))).'';ENDIF;?>1 && $ move_to_another_wishlist && $ is_user_owner):?>

Перейти к доске

// echo sprintf ('% s -% s', $ wl_title, $ wl_privacy); echo sprintf ('% s', $ wl_title); ?> <? PHP endforeach; ?> <? php endif; ?> <! - Удалить из списка желаний -> <? php if ($ is_user_owner && $ repeat_remove_button):?> " class="remove_from_wishlist button" title="<?php _e( 'Remove this product', 'yith-woocommerce-wishlist' ) ?>"> <? Php _e ('Удалить', 'yith-woocommerce-wishlist')?> <? php endif; ?> <? php endif; ?> <? PHP ENDIF; endforeach; еще:?> " class = "wishlist-empty"> <? php echo apply_filters ('yith_wcwl_no_product_to_remove_message', __ ('На этой доске еще не было добавлено ни одного элемента', '' yith-woocommerce-wishlist '))?> <? PHP ENDIF; if (! empty ($ page_links)):?> "> <? php echo $ page_links?> <? php endif?> "> <? php if ($ show_cb):?> <? php endif; ?> <? php if ($ is_user_owner && $ show_ask_estimate_button && $ count> 0):?> <? php endif; ?> <? PHP do_action ('yith_wcwl_before_wishlist_share', $ wishlist_meta); if (is_user_logged_in () && $ is_user_owner &&! $ is_private && $ share_enabled) { yith_wcwl_get_template ('share.php', $ share_atts); } do_action ('yith_wcwl_after_wishlist_share', $ wishlist_meta); ?> <? php?> <? php wp_nonce_field ('yith_wcwl_edit_wishlist_action', 'yith_wcwl_edit_wishlist'); ?> <? php if (! $ is_default):?> " name = "wishlist_id" id = "wishlist_id"> <? php endif; ?> <? php do_action ('yith_wcwl_after_wishlist', $ wishlist_meta); ?> <? php do_action ('yith_wcwl_after_wishlist_form', $ wishlist_meta); ?> <? php if ($ show_ask_estimate_button && (! is_user_logged_in () || $ Additional_info)):?>
" method = "post" class = "wishlist-ask-an -valuation-popup"> <? php if (! is_user_logged_in ()):?> <? php endif; ?> <? php if (! empty ($ Additional_info_label)):?> <? php endif; ?>
<? php endif; ?>

Я знаю, что этот скрипт нельзя скопировать напрямую, поскольку он просматривает переменные продукта, зная, через какой продукт он просматривается, мне нужно написать нечто подобное, которое будет выглядеть внутри списка желаний, а не внутри продукта.

Я думаю, что знаю, что мне нужно делать, я просто не знаю, как это сделать ...

Я пробовал простые вещи, которые, как я предсказывал, не сработают, даже не реализовав их. Попытка угадать шорткоды / поиск в Интернете для получения списка шорткодов. Всю помощь высоко ценят.

Спасибо, Джейсон.

РЕДАКТИРОВАТЬ: Попытка достичь этого с помощью 'simplehtmldom' ...

Я скачал и установил simplehtmldom, затем вызвал его в файл:

<?php 
    $simplehtmldom = get_template_directory() . "/simplehtmldom/simple_html_dom.php";
    include_once($simplehtmldom);
?>

Затем попытайтесь найти изображение в списке желаний, собрав src первого продукта в этом списке желаний:

<?php
    $boardlink = YITH_WCWL()->get_wishlist_url( 'view' . '/' . $wishlist['wishlist_token'] );
    $html = file_get_html($boardlink);
    $wishlistimage = $html->find('.attachment-woocommerce_thumbnail', 0)->src;
?>

Значение переменной $ boardlink было взято из href в разделе:

<a title="<?php echo $wishlist['wishlist_name'] ?>" class="wishlist-anchor" href="<?php echo YITH_WCWL()->get_wishlist_url( 'view' . '/' . $wishlist['wishlist_token'] ) ?>">

Так технически должно / могло бы работать ...

Однако я получаю ряд ошибок:

Предупреждение: file_get_contents (): сбой операции SSL с кодом 1. OpenSSL Сообщения об ошибках: ошибка: 14090086: процедуры SSL: ssl3_get_server_certificate: сбой проверки сертификата в / home / example / public_html / development / wp-content / themes / bolt / simplehtmldom / simple_html_dom.php в строке 136

Предупреждение: file_get_contents (): не удалось включить шифрование в /home/example/public_html/development/wp-content/themes/bolt/simplehtmldom/simple_html_dom.php в строке 136

Предупреждение: file_get_contents (https://development.example.com/my-materials/view/9OW01M6785H9/): не удалось открыть поток: сбой операции в /home/example/public_html/development/wp-content/themes/bolt/simplehtmldom/simple_html_dom.php в строке 136

Этот сайт не имеет действительного SSL, так как это всего лишь промежуточный сайт разработчика. Живой сайт имеет SSL.

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

Спасибо, Джейсон.

...