Как преобразовать существующий код в плагин WooCommerce

Я новичок в коде WordPress и WooCommerce. Мне предоставили рабочий код, который находится в плагинах / woocommerce / templates / archive-product.php.

Функция довольно проста: она просто извлекает массив данных с удаленного сайта и использует возвращенный JSON для поиска соответствующих SKU и вставки их в качестве элементов в список продуктов.

Работает довольно хорошо, однако, поскольку я новичок в Woo & WP, я надеюсь, что кто-то сможет показать мне, как я могу преобразовать этот код в правильный способ определения его как плагина?

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

любые советы очень ценятся

if ( wc_get_loop_prop( 'total' ) ) {

    $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

    $cat = explode('/', $actual_link);

    if ($cat[4] == 'my-product-list') {

        global $current_user;
        get_currentuserinfo();

        $data = array( 'email' =>  $current_user->user_email);
        $response = wp_remote_post( 'https://www.shop.com/remote-data/', array( 'data' => $data ) );

        $curl = 'https://www.shop.com/remote-data/';

        $response = wp_remote_get( $curl );
        $rows = wp_remote_retrieve_body( $response ) ;
        $decode = json_decode(stripslashes($rows), true);

        global $wpdb;

        $product_id = array();

        $i = 0;
        foreach ($decode as $single_data) {
            foreach ($single_data['items'] as $data) {
                $result = $wpdb->get_results ( "SELECT post_id FROM wp_postmeta WHERE meta_key = '_sku' AND meta_value = '".$data."'" );
                $product_id[$i] = $result[0]->post_id;
                $i++;
            }
        }

        $product_id = array_filter(array_unique($product_id));
        $args = array(
        'post_type' => 'product',
        'post__in' => $product_id
        );

        //The Query
        $the_query = new WP_Query( $args );

        while ( $the_query->have_posts() ) {
            $the_query->the_post();

            do_action( 'woocommerce_shop_loop' );

            wc_get_template_part( 'content', 'product' );
        }
Как убрать количество товаров в категории WooCommerce
Как убрать количество товаров в категории WooCommerce
По умолчанию WooCommerce показывает количество товаров рядом с категорией, как показано ниже.
0
0
26
1

Ответы 1

Вы можете попробовать подключить его к woocommerce_before_main_content

Вот так:

function fetch_shop_data() {
   // your code
}
add_action('woocommerce_before_main_content', 'fetch_shop_data');

Другие вопросы по теме