Поддержка WooCommerce Ошибка в плагине Woo Dynamic Remarketing

  • Решено mypowerlogo

    (@mypowerlogo)


    ВОЗНИКЛА ОШИБКА, срабатывает в корзине:
    Notice: Функция post вызвана <strong>неправильно</strong>. Свойства товара не должны быть доступны непосредственно. Backtrace: require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/maxstore/page.php'), get_footer, locate_template, load_template, require_once('/themes/maxstore/footer.php'), wp_footer, do_action('wp_footer'), WP_Hook->do_action, WP_Hook->apply_filters, rmkdin, require_once('/plugins/woo-dynamic-re-marketing/remarketing-dinamic.php'), WC_Abstract_Legacy_Product->__get, wc_doing_it_wrong Дополнительную информацию можно найти на странице <a href="https://codex.wordpress.org/Debugging_in_WordPress">«Отладка в WordPress»</a>. (Это сообщение было добавлено в версии 3.0.) in /wp-includes/functions.php on line 4231

    по инструкции гугла данные должны передаваться в таком виде:
    Страница корзины (добавлен один товар):

    <script type="text/javascript">
    var google_tag_params = {
    dynx_itemid: "123",
    dynx_pagetype: "conversionintent",
    dynx_totalvalue: 120.00
    };
    </script>

    Страница корзины (добавлено четыре товара):

    <script type="text/javascript">
    var google_tag_params = {
    dynx_itemid: ["1", "2", "3", "4"],
    dynx_pagetype: "conversionintent",
    dynx_totalvalue: [120.00, 300.00, 500.00, 900.00]
    };
    </script>

    полагаю ошибка где то в этом куске кода взятого из плагина:

    <script type="text/javascript">
    		var google_tag_params = {
    dynx_itemid: <?php echo "["; global $woocommerce; $cart_items = array();  $items = $woocommerce->cart->get_cart();
      foreach((array)$items as $item => $values) { ?>
       <?php $_product = $values['data']->post; ?>
    		 <?php array_push($cart_items, "'" . $_product->ID . "'"); ?>
    		  <?php } echo implode(', ', $cart_items); echo "]";
    			
    		?>,
      
      
    		dynx_pagetype: 'conversionintent',
    		dynx_totalvalue: <?php  echo WC()->cart->total; ?>
    		
    		};
    		</script>

    помогите разобраться как исправить ошибку

    • Тема изменена 5 лет, 2 месяца назад пользователем mypowerlogo.
Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Модератор Yuri

    (@yube)

    по инструкции гугла

    Это вообще гвоздь не от той стенки.

    помогите разобраться

    Да в сообщении всё написано.
    Что: Свойства товара не должны быть доступны непосредственно.
    Где: /plugins/woo-dynamic-re-marketing/remarketing-dinamic.php

    Судя по всему, woocommerce (кстати, а почему Вы задали вопрос не разделе woocommerce?) ругается на $_product->ID. По его Новому Канону v3.0 нужно писать $_product->get_id(); Только не спрашивайте «почему так» ))

    как исправить ошибку

    Пока это не проблема, а простая нотация. Правильнее всего написать автору плагина woo-dynamic-re-marketing чтобы он внес правку.

    в теме этого плагина уже пару лет нет ответов автора… думаю он забросил

    при замене$_product->ID
    на $_product->get_id()

    ошибка нотис не пропадает, а добавляется еще и фатальная ошибка
    atal error: Uncaught Error: Call to undefined method WP_Post::get_id() in /home/m/mypower/second_mypower/public_html/wp-content/plugins/woo-dynamic-re-marketing/remarketing-dinamic.php:38

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

    • Ответ изменён 5 лет, 2 месяца назад пользователем mypowerlogo.

    думаю он забросил

    О чем и свидетельствует надпись «This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.» на странице плагина.
    Это ли не повод задуматься о замене трупа на что-то более свежее?

    В этой ветке форума не сможете помочь и нужно пересоздать тему в ветке вкуомерса?

    боюсь что скорее в ветке платных специалистов.
    В ветке ВУУ вам посоветуют заменить плагин на актуальный и заведомо рабочий.

    Модератор Yuri

    (@yube)

    Call to undefined method WP_Post::get_id()

    Значит, $_product не продукт (или не всегда продукт), и всё еще хуже. Ищите актуальную замену плагину, как сказано выше. Мало ли какие там еще потенциальные проблемы прячутся. Или не обращайте внимания на Notes, пока он не превратится в Warning или Fatal.

    перепробовал штук 10 плагинов так и не нашел ни одного рабочего. Единственный, который именно передает параметры — этот, хоть и выскакивает нотис. Всем спасибо, буду искать исполнителя

    устранил в нем несколько ошибок. Код теперь выглядит так

    <script type="text/javascript">
    		var google_tag_params = {
    dynx_itemid: <?php echo "["; global $woocommerce; $cart_items = array();  $items = $woocommerce->cart->get_cart();
    
      foreach((array)$items as $item => $values) { ?>
    
       <?php //$_product = $values['data']->get_content; ?>
    		 <?php //array_push($cart_items, "'" . $_product->ID . "'"); ?>
    
    	<?php $product_id = $values['data']->get_id(); ?>
    		 <?php array_push($cart_items, "'" . $product_id . "'"); ?>
    
    		  <?php } echo implode(', ', $cart_items); echo "]";
    			
    		?>,
      
      
    		dynx_pagetype: 'conversionintent',
    		dynx_totalvalue: <?php  echo WC()->cart->total; ?>
    		
    		};
    		</script>
    Модератор Yui

    (@fierevere)

    永子

    То, что вы пишете сюда — отчасти хорошо, но если вы хотите достучаться до автора, чтобы они исправили, то вам прямой путь на форум поддержки конкретного плагина

    https://wordpress.org/support/plugin/woocommerce-google-dynamic-retargeting-tag/
    (вроде как сюда) или найдите плагин в каталоге и нажмите вкладку Поддержка/Support

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Ошибка в плагине Woo Dynamic Remarketing» закрыта для новых ответов.