mstdmstd

Ищу плагин для формирования списка банеров в админке

А есть ли что-то удобное для формирования списка банеров в админке wordpress-а?
То есть нужен редактор баннеров с возможностью ввести a) картинку B) урл c) порядок вывода d) текст для хинта кртинки
?

Убрать should not be called statically in варнинги

Всем привет,

Понадобилось поковырять чужой вордпрессовсий плагин WOOEXIM – WooCommerce Export Import Plugin, Version 1.0.0  в WordPress 4.6.1 под PHP Version 7.0.8-0ubuntu0.16.04.2
И в режиме отладки полезли варнинги:

Deprecated: Non-static method WOOEXIM_Import::translations() should not be called statically in ...
Deprecated: Non-static method WOOEXIM_Import::admin_menu() should not be called statically in... 

При определении в классе:

class WOOEXIM_Import {
    
    public function __construct() {
        add_action( 'init', array( 'WOOEXIM_Import', 'translations' ), 1 );
        add_action('admin_menu', array('WOOEXIM_Import', 'admin_menu'));
        add_action('wp_ajax_wooexim-import-ajax', array('WOOEXIM_Import', 'render_ajax_action'));
    }

    public function translations() {
        load_plugin_textdomain( 'wooexim-import', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
    }Deprecated: Non-static method WOOEXIM_Import::translations() should not be called statically in 
Deprecated: Non-static method WOOEXIM_Import::admin_menu() should not be called statically in 


    public function admin_menu() {
        add_menu_page( 'WOOEXIM', 'WOOEXIM', 'manage_options', 'wooexim-import', '', '', 56 );
        add_submenu_page( 'wooexim-import', 'Import Product', 'Import Products', 'manage_options', 'wooexim-import', array('WOOEXIM_Import', 'render_admin_action'));
    }

Можно ли как-то подправить чтобы убрать эти варнинги?

Спасибо !

вывода на печать списка продуктов wooCommerce

Всем привет,
А нет ли в wordpress 4.6 для списка продуктов wooCommerce удобных тулзов/плагинов для вывода на печать(в excel,cvs… файл)
списка продуктов, отображаемых на экран в форме моего плагина ?
Спасибо !

стили моего плагина не применяются

Всем привет,

в wordpress 4.6 делаю свой плагин с формой на фронтенде которую подключаю через add_shortcode

Мой плагин имеет таблицу стилей у которой пишу


/*iPhone portrait 320 x 480 */
@media screen and (min-width: 320px) and (max-width: 479px) {
    body {
        background-color: lightgreen;
    }
}

/*iPhone landscape 480 x 320*/
@media screen and (min-width: 480px)  and (max-width: 599px) {
    body {
        background-color: #ffff00;
    }
}

но тестируя вижу что на девайсах мои стили не применяются а берутся из bootstrap.css?ver=4.6.1 активной темыю
Мои стили ниже в иерархии перечеркнуты.

Мои стили подключены в в плагине

            wp_register_style( 'NSN_WooExtSearch_common_styles', $this->m_plugin_url . 'css/nsn_woo_ext_search_style.css' );
            wp_enqueue_style( 'NSN_WooExtSearch_common_styles' ); 

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

Спасибо !

Не работает запрос по аттрибутам

Всем привет,
Погуглив, пытаюсь в wordpress 4.6 сделать запрос по аттрибутам :


        $args=array(
            'post_type' => 'product',
            'post_status' => 'publish',
            'orderby'=>$orderby,
            'taxonomy'=> 'product_cat',
            'meta_query' => array(
                'relation' => 'AND',
                array(
                    'key' => 'pa_brand',
                    'value' => 'A4Tech',
                    'compare' => '='
                ),
            ),
        ); 

И получаю пустой список :

если закоментарить поля 3 строки :


                    'key' => 'pa_brand',
                    'value' => 'A4Tech',
                    'compare' => '='

то я получаю список постов и в цикле получив продукт каждого поста :

        $related_product_posts= query_posts($args);
        echo '<pre>'.count($related_product_posts).'::$related_product_posts::'.print_r($related_product_posts,true).'</pre>';
        foreach( $related_product_posts as $next_key=>$next_related_product_post ) {
            echo '<pre>$next_related_product_post->id::'.print_r($next_related_product_post->ID,true).'</pre>';
            $next_related_product= wc_get_product($next_related_product_post);
            $attrs_list= $next_related_product->get_attributes();  
            echo '<pre>$attrs_list::'.print_r($attrs_list,true).'</pre>';
        }

и например для товара с кодом 9 я получаю :


$next_related_product_post->id::9
$attrs_list::Array
(
    [pa_src] => Array
        (
            [name] => pa_src
            [value] => 
            [position] => 0
            [is_visible] => 1
            [is_variation] => 0
            [is_taxonomy] => 1
        )

    [pa_brand] => Array
        (
            [name] => pa_brand
            [value] => 
            [position] => 1
            [is_visible] => 1
            [is_variation] => 0
            [is_taxonomy] => 1
        )

    [pa_discount] => Array
        (
            [name] => pa_discount
            [value] => 
            [position] => 2
            [is_visible] => 1
            [is_variation] => 0
            [is_taxonomy] => 1
        )

Значения всех аттрибутов пусты…
Но открыв редактор я вижу что для данного товара ID=9
аттрибут brand заполнен :

View post on imgur.com

Так же как и аттрибуты s r c и d iscount.

А как правильно и может для wordpress 4.6 есть другие методы ?

Спасибо !

експортировать WooCommerce продукты с картинками

Всем привет,
Нужно експортировать WooCommerce продукты (с картинками) + аттрибуты + категории продуктов.
на диск и на другой сайт с WooCommerce.

Нашел плагин Product Import Export for WooCommerce 1.1.4 – у него хороший рейтинг.
Выгрузил базу на диск и в результирующем csv-файле – не нашел картинок. То ест.ь я не очень понимаю а где должны быть картинки ?
Может в отдельный подкаталог ? Нет…
Аттрибуты тоже не все експортировано, то есть атрибуты есть, но их значений нет…

Подскажите, пожалуйста, чем можно экспортировать ВСЕ данные ?

Спасибо !

Аналог strftime в wordpress

Всем привет,
В wordpress 4.6 используются форматы данных "F j, Y" ( https://codex.wordpress.org/Formatting_Date_and_Time )
отличные от strftime.
Не нашел, а какой функцией работать с этим форматом?
Я не имею в виду the_date, the_tim…
Спасибо !

запуск старого проекта на WordPress 4.6/PHP7

Всем привет,
Пытаюсь запустить свой старый проект на WordPress 4.6 с PHP Version 7.0.8-0ubuntu0.16.04.2
и не запускается пользовательская функция активации плагина которая была завернута в обьект :


if (!class_exists('ArtistsSongs')) {
    class ArtistsSongs {
        protected $m_plugin_name;
        protected $m_plugin_dir;
        protected $m_plugin_url;

        public function __construct()
        {
            DebToFile('__construct  $_GET::'.print_r($_GET,true));

            DEFINE('ArtistsSongs', true); // Pluging is inited
            ... 
            $this->m_plugin_name = "/wp-admin/options-general.php?page=". plugin_basename(__FILE__);

            $this->m_plugin_dir = trailingslashit(WP_PLUGIN_DIR.'/'.dirname(plugin_basename(__FILE__)));
            $this->m_plugin_url = trailingslashit(WP_PLUGIN_URL.'/'.dirname(plugin_basename(__FILE__)));

            DebToFile('__construct  $this->m_plugin_name::'.print_r($this->m_plugin_name,true));
            DebToFile('__construct  $this::'.print_r($this,true));
            register_activation_hook( $this->m_plugin_name, array($this, 'activate') );
            register_deactivation_hook( $this->m_plugin_name, array($this, 'deactivate') );
//            register_activation_hook( $this->m_plugin_name, array(&$this, 'activate') );   //Изначально с 5php был вызов с адрессацией
//            register_deactivation_hook( $this->m_plugin_name, array(&$this, 'deactivate') );

            if ( is_admin() ) { // That is admin page
            ...






        public function activate()
        {
            DebToFile('-InitDBStructure activate ::' .print_r(1111,true) );
            global $wpdb;
            ob_start();
            $ArtistsSongsDBObj = new ArtistsSongsDB( $wpdb, $this->m_plugin_dir, $this->m_plugin_url );
            DebToFile('-0 activate  $ArtistsSongsDBObj::' .print_r($ArtistsSongsDBObj,true) );
            $ret= $ArtistsSongsDBObj->InitDBStructure(true);
            $output = ob_get_contents ();
            ob_end_clean ();
            DebToFile('-InitDBStructure $output ::' .print_r($output,true) );
            return $ret;
        }

        public function deactivate()
        {
            DebToFile('-InitDBStructure deactivate ::' .print_r(222222,true) );
            global $wpdb;
            $ArtistsSongsDBObj = new ArtistsSongsDB($wpdb);
            $ret= $ArtistsSongsDBObj->ClearDBStructure();
            nsnClass_appData::deactivatePlugins( array('nsn-source-selection/nsn-source-selection-plugin.php', 'nsn-voting-reports/nsn-voting-reports-plugin.php' ) );
            return $ret;
        }

        ...

DebToFile – функция вывода отладочной инфы в файл и получается такой вывод :


__construct  $_GET::Array
(
    [action] => activate
    [plugin] => artistssongs/artists-songs-plugin.php
    [plugin_status] => all
    [paged] => 1
    [s] => 
    [_wpnonce] => d30f14ba11
)

__construct  $this->m_plugin_name::/wp-admin/options-general.php?page=artistssongs/artists-songs-plugin.php
__construct  $this::ArtistsSongs Object
(
    [m_plugin_name:protected] => /wp-admin/options-general.php?page=artistssongs/artists-songs-plugin.php
    [m_plugin_dir:protected] => /mnt/_work_sdb8/wwwroot/wp-songs/wp-content/plugins/artistssongs/
    [m_plugin_url:protected] => http://local-wp-songs.com/wp-content/plugins/artistssongs/
)
 

То есть, срабатывает конструктор обьекта но нет вызова пользовательской функции активации…
Не понятно из-за чего? Я просмотрел новые фичи как WordPress 4.6 так и PHP 7 но не вижу из-за чего может быть проблема…

Спасибо!

Не вызывается функция из крона

Всем привет,
нужно вызвать функциюб из крона которая прописана в "WP-Cron Events".
Если кликнуть на "Run Now" – то выводит сообщение об успешном выполнении :
http://i.imgur.com/d5qUGNP.png
но функция не вызывается
функция определена в wp-content/themes/storefront-child/functions.php :

if ( ! function_exists( 'delete_absolute_template_drafts' ) ) {
    function delete_absolute_template_drafts($days=7, $send_email= true)
    {
        global $wpdb;
        if ( empty($days) ) {
            $days= get_option("displo_days_for_drafts_absolute", 7);
        }
        DebToFileWoo(' delete_absolute_template_drafts +++ $days::'.print_r($days,true));   //  Это вывод в файл отрадки
        $upload_dir = getUploadDir();
        $deleted_count= 0;
        ...

storefront-child – активняа тема унаследованная от storefront.
DISABLE_WP_CRON – не определена.
В логах никаких ощибок нет …
В чем может быть проблема ?

как правильно приатачить к письму для customer completed order

Всем привет,
Я скопировал темплейт customer-completed-order.php(Customer completed order email) моей темы(унаследованной от storefront) в wp-content/themes/storefront-child/woocommerce/emails/customer-completed-order.php
Редактируя текст этого темплейта я меняю содержимое письма клиента, когда админ комплитит ордер. Вроде так ?
Чего я не нашел, так как правильно приатачить к этому письмо несколько картинок которые не являются _wp_attached_file или _thumbnail_id?
Спасибо!

При деактивации нужно также дективировать завимысые плагины

Всем привет,
При деактивации плагина A нужно также дективировать плагины B,C которые которые имеют ссылки на плагин A.

Я вешал свой метод в register_deactivation_hook и в нем вызывал:
$the_plugs = get_option(‘active_plugins’);
и из списка активных плагинов удалял плагины B, C и потом сохранял этот массив в опциях.
Но похоже метод register_deactivation_hook вызывается ПОСЛЕ деактивации плагина A и это вызывает ошибки…
Нет ли возможности вызывать метод ПЕРЕД деактивацией плагина A ?

Спасибо!

в установке WooCommerce в Stock status добавить еще 1 статус

Всем привет,
Просматривал пример плагина WooCommerce Products Filter 2.1.2
http://www.demo.woocommerce-filter.com/
и заметил, что у него есть фильтр по 2м состояниям Stock status "In sales", и "In stock".
что отличается от 2х состояний "In stock" и "Out of stock" в установке WooCommerce по умолчанию.
То есть, для этого примера добавили 3е состояние? Не подкажите как это сделать?

автоматизировать прием платежей в WooCommerce

Всем привет,
В wp 4.3.1 я использую WooCommerce,
Когда клиент оплачивает за товар по номеру ордера(скажем через paypal или кредитную карту ) админ сайта определяет
ордер по его номеру в платежном документе и на странице ордеров устанавливает этот ордер в Complete.
Так?

А нет ли возможности автоматизировать каким-образом этот процесс?

В wp_register_script передать ряд параметров

Всем привет,
В wp 4.3 я из плагина подключаю js-файл с помощью wp_register_script, в котором хранятся ряд js-функий.
Есть ли возможность при подключении этого файла с помощью wp_register_script передать ряд параметров(например урл плагина),
чтобы эти параметры были общими для всех функций этого файла ?
Если да, то как?

Спасибо!

Уставил Debug Bar и ничего …

Всем привет,
WordPress 4.3.1 / Compose WP them :
Уставил плагины Debug Bar 0.8.2, Debug Bar Console 0.3 и актировал их
В wp-config.php добавил :

define('WP_DEBUG', true);
define('SAVEQUERIES', true);

и ничего … никаких новых пунктов меню …
А надеялся консоль с отладочной инфой.
Я что-то недоставил ?

данные пользователя из фейсбука

Всем привет,
В wp 4.3.1 для коннекта в wp из facebook я заюзал плагин Facebook Login Widget Version 3.0.1
И как бы он работает но при первом логине в wp_users поля заполняются:

user_login = 90NNN77@facebook.com,
user_nicename = 90NNN77facebook-com
 user_email  = 90NNN77@facebook.com

Это ограничение facebook-а или есть плагины которые умеют вытягивать из фейсбука всю инфу правильно?
И подскажите плиз какой плагин/виджет для редактирования профайла этого нового юзера, чтобы он мог отредактировать свои поля?

в картинках wooCommerce ватермарк

Всем привет,
В wordpress 4.3 подключен wooCommerce – продукты это картинки – причем если ордер еще не оплачен(post_status = "wc-processing"), то картинку
нужно отобразить с ватермарком
Для этого я пытался использовать wp-image-protect плагин ( https://wordpress.org/plugins/wp-image-protect/ )
Он привлек мое внимание тем что исходные картинки он не меняте – а устанавливает ватермарк на лету
Она ватермарк отображает – но для всех картинок Мне не удалось убирать ватермарк в Order Details если ордер оплачен (post_status = "wc-completed")

Я делал :

add_action( 'woocommerce_order_status_completed', 'displo_woocommerce_order_status_completed' );
function displo_woocommerce_order_status_completed($order_id) {
    $ret= add_metadata('post', $order_id, 'wpipp_exclude_from_watermark', false);
...

Это кусочек кода из wp-image-protect плагина :
        /**
        * Save the exclude watermark field
        */
        function wpipp_add_exclude_watermark_field_save( $post, $attachment ) {
            if( isset( $attachment['wpipp_exclude_from_watermark'] ) ) {
                update_post_meta( $post['ID'], 'wpipp_exclude_from_watermark', $attachment['wpipp_exclude_from_watermark'] );
            } else {
                update_post_meta( $post['ID'], 'wpipp_exclude_from_watermark', false );
            }
                
            return $post;
        }

Я устанавливаю meta post значение с ключом ‘wpipp_exclude_from_watermark’ .
Не понятно для чего 4й параметр "false" или "$attachment[‘wpipp_exclude_from_watermark’]" ?
Для чего он?

После как код отработал я вижу строку в postmeta таблице с post_id= Новый Ордер, meta_key= ‘wpipp_exclude_from_watermark’ и meta_value= ”

Но Watermark по-прежнеиу виден на "Order Details" странице когда ордер Completed. IЯ надеялся что наличие этой строки в
postmeta с meta_key= ‘wpipp_exclude_from_watermark’ и meta_value= ” this image будет без watermar.

Я пытался дебажить этот плагин но не понял как ‘wpipp_exclude_from_watermark’ работает.

И кто работал с этим плагином подскажите где точка входа когда watermark применяется к картинке…
Условие на вывод ватермарка я бы добавил сам …

Ищу WooCommerce тему с группами

Всем привет,
В wp 4.3 я использую Storefront тему для WooCommerce, но мне хотелось бы немного другую тему:
С группировкой по категориям ( все продукты в различных группах и я хочу возможность сначала выбрать группу и потом выбрать из списка товаров этой группы) и поисковую систему с бОльшими
возможностями – типа поиск по ценам(максимум и минимум, поиск по sku, тагам).
и что-нить приятное на глаз. Я искал и просмотрел некоторое кол-во WooCommerce, тем но то что мне нужно не нашел…
Нет ли таких тем?

Спасибо !

Синхронизация в WooCommerce

Всем привет,
Поделитесь пожалуйста опытом,
Нужно в WooCommerce, wp4.3 загрузить продукты с категориями из внешних таблиц
Я погуглил и нашел такую ссылку http://wordpress.stackexchange.com/questions/137501/how-to-add-product-in-woocommerce-with-php-code
с примером кода

        $post = array(
     'post_author' => $user_id,
     'post_content' => '',
     'post_status' => "publish",
     'post_title' => $product->part_num,
     'post_parent' => '',
     'post_type' => "product",

     );
      //Create post
     $post_id = wp_insert_post( $post, $wp_error );
     if($post_id){
     $attach_id = get_post_meta($product->parent_id, "_thumbnail_id", true);
     add_post_meta($post_id, '_thumbnail_id', $attach_id);
    }
    wp_set_object_terms( $post_id, 'Races', 'product_cat' );
     wp_set_object_terms($post_id, 'simple', 'product_type');



     update_post_meta( $post_id, '_visibility', 'visible' );
     update_post_meta( $post_id, '_stock_status', 'instock');
     update_post_meta( $post_id, 'total_sales', '0');
     update_post_meta( $post_id, '_downloadable', 'yes');
     update_post_meta( $post_id, '_virtual', 'yes');
     update_post_meta( $post_id, '_regular_price', "1" );
     update_post_meta( $post_id, '_sale_price', "1" );
     update_post_meta( $post_id, '_purchase_note', "" );
     update_post_meta( $post_id, '_featured', "no" );
     update_post_meta( $post_id, '_weight', "" );
     update_post_meta( $post_id, '_length', "" );
     update_post_meta( $post_id, '_width', "" );
     update_post_meta( $post_id, '_height', "" );
     update_post_meta($post_id, '_sku', "");
     update_post_meta( $post_id, '_product_attributes', array());
     update_post_meta( $post_id, '_sale_price_dates_from', "" );
     update_post_meta( $post_id, '_sale_price_dates_to', "" );
     update_post_meta( $post_id, '_price', "1" );
     update_post_meta( $post_id, '_sold_individually', "" );
     update_post_meta( $post_id, '_manage_stock', "no" );
     update_post_meta( $post_id, '_backorders', "no" );
     update_post_meta( $post_id, '_stock', "" );

     // file paths will be stored in an array keyed off md5(file path)
    $downdloadArray =array('name'=>"Test", 'file' => $uploadDIR['baseurl']."/video/".$video);

    $file_path =md5($uploadDIR['baseurl']."/video/".$video);


    $_file_paths[  $file_path  ] = $downdloadArray;
    // grant permission to any newly added files on any existing orders for this product
    //do_action( 'woocommerce_process_product_file_download_paths', $post_id, 0, $downdloadArray );
    update_post_meta( $post_id, '_downloadable_files ', $_file_paths);
    update_post_meta( $post_id, '_download_limit', '');
    update_post_meta( $post_id, '_download_expiry', '');
    update_post_meta( $post_id, '_download_type', '');
    update_post_meta( $post_id, '_product_image_gallery', '');

Но гугл также выдал ссылку на http://woocommerce.wp-a2z.org/oik_api/wc_api_productscreate_product/
и
WC_API_Products::create_product() – Create a new product
также есть ссылки на REST API

Что предпочтительнее/надежнее?
Есть опыт программирования в wp(в том числе програмного добавления категорий и постов при помощи wp_insert_category и wp_insert_post ) – с WooCommerce не работал

И несколько слов о синхронизации как я ее вижу сейчас:
1) есть 2 внешние таблицы categories , products
2) К этим таблицама кроме их полей добавляю еще 2 поля status( возможные значения "unmodified", "new", "modified", "deleted"), wp_id – ссылка на строку в wp
3) синхронизацию нужно делать из wp, средствами wp о чем я выше спрашивал в кроне или по кнопке
4) Проверяя из wp-процедуры значение status – выполнять соответствующую операцию в wp присвоить status = "unmodified"
5) видимо нужно будет создать таблицу rows_deleted – где и хранить коды удаленных сатегорий и постов – так меньше будет переделок во внешней программе

что я упустил – и возможно в wp есть удобные средства для этого ?

Спасибо!

Админка со ссылками на внешние сайты

Всем привет,
Используя wp 4.3 при загрузке страниц админки(настройки по умолчанию) в статусе браузера вижу ссылки на внешние сайты – что мне крайне не нравиться, так как это замедляет загрузку страниц…\
Ищу в в коде по ссылкам и вижу функции вида :

    /**
     * Adds another stylesheet inside TinyMCE.
     *
     * @since 4.2.0
     * @access public
     *
     * @param string $styles URL to editor stylesheet.
     * @return string Possibly modified stylesheets list.
     */
    public function add_editor_style( $styles ) {
        if ( ! empty( $styles ) ) {
            $styles .= ',';
        }


            $open_sans_font_url = ',' . add_query_arg( $query_args, 'https://fonts.googleapis.com/css' );

Я когда-то вручную чистил такие ссылки – но нет ли плагинов или возможно тем для админок без внешних ссылок ?

Anonymous
Отправить
Ответ на: