Intereting Posts

Пользовательский тип сообщения для замены продуктов Woocommerce – ошибка страницы не найдена

Я создал настраиваемый тип сообщений для «Решений», который в конечном итоге заменит все продукты, добавленные в Woocommerce, поскольку у меня больше нет необходимости в корзине покупок.

Поэтому мне нужно скопировать данные из каждого продукта в новое «решение» CPT.

У меня есть код ниже, чтобы настроить новый тип сообщения:

function create_solution_post_type() { register_post_type('solution', [ 'labels' => [ 'name' => __('Solutions'), 'singular_name' => __('Solution'), ], 'public' => true, 'has_archive' => true, 'rewrite' => [ 'slug' => 'product', ], ] ); register_taxonomy( 'solution-area', 'solution', [ 'labels' => [ 'name' => __( 'Solution Areas' ), 'singular_name' => __( 'Solution Area' ), ], 'hierarchical' => true, 'show_admin_column' => true, ] ); } add_action('init', 'create_solution_post_type'); 

После сброса постоянных ссылок он отлично работает для настраиваемого типа сообщений, но всякий раз, когда я перехожу к просмотру страницы продукта woocommerce, я получаю: «Ой! Эта страница не найдена».

Я предполагаю, потому что пуля для продукта и решения такая же? Хотя я действительно не понимаю, почему это было бы проблемой, если общий URL-адрес отличается, например. example.com/product/product-name в woocommommerce станет example.com/product/product-name-2 для настраиваемого типа сообщений, пока я не удалю продукты и не удалю woocommerce.

Мне нужны CTP-решения и продукты woocommerce, работающие в сочетании с одним и тем же «продуктом». Как я могу это достичь?

Большое спасибо заранее за вашу помощь.

Я еще не пробовал это сам – и я, вероятно, всегда предпочел бы пойти с дефолтными «продуктами» по соображениям совместимости … Однако должно быть очень хорошо добавить свой собственный CPT в WooCommerce, а затем «переместить» все продукты на этот новый CPT.

Сначала вам нужно добавить CPT к вашей установке WordPress, совместимой с WooCommerce, чтобы вы могли добавить вещи в корзину и т. Д. Reigel Gallarde написал пошаговое руководство о том, как это сделать: как добавить персонализированный пост введите WooCommerce .

Затем вы можете экспортировать все Продукты и импортировать их в Решения с помощью pTypeConverter .

Не забудьте сделать резервную копию всего, прежде чем начать!

Вы заменяете только slug, но не тип сообщения. Чтобы переместить все продукты типа post в решение, вы должны перейти на страницу phpmyadmin wp_posts и заменить все post_type = 'product' on 'solution'

Чтобы исправить страницу 404, откройте «Настройки->« Перенаправленные »и нажмите« Сохранить изменения », чтобы обновить ее.

Я сам раньше не испытывал эту проблему, но я попытался бы отступить от своих шагов и отменить их. В этом случае я бы подумал, что вам придется отменить регистрацию новых решений типа Custom и снова установить пул для пользовательского типа почтового клиента WC. Для установки пула для продуктов WC я сначала попробую это с помощью обычных параметров Permalink и установит его по умолчанию, и если это не поможет, я также попробую установить его с помощью настраиваемой базовой ссылки для WC.

Шаг 1: отменить регистрацию нестандартного типа

 // Function to unregister type if ( ! function_exists( 'unregister_post_type' ) ) : function unregister_post_type( $post_type ) { global $wp_post_types; if ( isset( $wp_post_types[ $post_type ] ) ) { unset( $wp_post_types[ $post_type ] ); return true; } return false; } endif; // Unregister your new type solution unregister_post_type('solution'); 

См. Типы пользовательских сообщений Deregister

Шаг 2 установите базовые продукты permalink. Установите постоянную ссылку на продукт для опции базы WC.

PS. Я сам не знаю метода создания настраиваемого типа сообщений и переместите все существующие продукты WooCommerce, чтобы заполнить ваши новые настраиваемые типы сообщений. Я растягиваю его здесь, но, я думаю, вы хотите создать собственный тип продукта WooCommerce и построить для своих спецификаций? В этом случае я бы поступил иначе. Я бы использовал атрибуты продукта для создания расширенных функций для наиболее простого типа продуктов. Это я использовал бы, чтобы добавить пользовательскую метаинформацию для каждого сообщения типа типа, ценового класса и т. Д. Затем вы можете использовать их для запуска всех видов логического разветвления на основе этой информации вместо создания нового типа для того, что на самом деле является расширением тип товара в любом случае.

Я создал довольно сложные функции, только расширяя тип продукта, используя только атрибуты продукта, то есть для бронируемых продуктов, которые связаны с Google Календари, и это касается компаний по аренде и компаний, совершающих поездки на лодках и т. Д. Оба используют те же основные атрибуты продукта, из которых я использую значения в пользовательском подключаемом коде. Посмотрите на это, т.е. почти закончите. Он использует атрибуты продукта для почти всего, что вы можете выбрать http://kcd.meta-inc.com/ , или того, где атрибуты продукта используются для привязки продуктов (автомобилей) к календарям и поиска в зависимости от даты и доступности в реальном времени автомобиля в календаре Google. http://huurauto-curacao.com/

Или я ошибаюсь в том, что вы хотите делать? Это должно быть довольно чертовски отличаться или сложнее, чем нужно, – это мое мнение, поэтому я действительно спрашиваю?

Удачи и надеюсь, что это поможет.

Не забудьте сбросить свои постоянные ссылки после добавления / удаления пользовательских типов сообщений, или вы получите ошибку 404 при посещении отдельных страниц. (Восстановите их в своих настройках).

Похоже, что слипы должны быть уникальными для всех сообщений в соответствии с документацией WordPress.

Почтовые пули должны быть уникальными во всех сообщениях

Поэтому невозможно иметь один и тот же пул для продуктов woocommcerce и CPT, поскольку я полагаю, что Woocommcerce Products – это просто сообщения. Мне придется иметь другой пул и использовать перенаправления.

Спасибо за помощь ребята.