А есть ли что-то удобное для формирования списка банеров в админке wordpress-а?
То есть нужен редактор баннеров с возможностью ввести a) картинку B) урл c) порядок вывода d) текст для хинта кртинки
?
Ищу плагин для формирования списка банеров в админке
А есть ли что-то удобное для формирования списка банеров в админке 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 заполнен :
Так же как и аттрибуты s r c и d iscount.
А как правильно и может для wordpress 4.6 есть другие методы ?
Спасибо !
експортировать WooCommerce продукты с картинками
Всем привет,
Нужно експортировать WooCommerce продукты (с картинками) + аттрибуты + категории продуктов.
на диск и на другой сайт с WooCommerce.
Нашел плагин Product Import Export for WooCommerce 1.1.4 – у него хороший рейтинг.
Выгрузил базу на диск и в результирующем csv-файле – не нашел картинок. То ест.ь я не очень понимаю а где должны быть картинки ?
Может в отдельный подкаталог ? Нет…
Аттрибуты тоже не все експортировано, то есть атрибуты есть, но их значений нет…
Подскажите, пожалуйста, чем можно экспортировать ВСЕ данные ?
Спасибо !
Всем привет,
В 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 передать ряд параметров(например урл плагина),
чтобы эти параметры были общими для всех функций этого файла ?
Если да, то как?
Спасибо!
Всем привет,
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, 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' );
Я когда-то вручную чистил такие ссылки – но нет ли плагинов или возможно тем для админок без внешних ссылок ?