1

Тема: Wordpress - чому не працює самописний плагін

Здрастуйте люди.
Робив я плагін для wordpress, woocommerce по підручнику.

Структура плагіну

  • admin/class-tutsplus-custom-woocommerce-field.php

  • public/class-tutsplus-custom-woocommerce-display.php

  • TutsPlus_Custom_WooCommerce_Field.php

Код

TutsPlus_Custom_WooCommerce_Field.php

 <?php
 /**
  * The plugin bootstrap file
  *
  * This file is read by WordPress to generate the plugin information in the
  * plugin admin area. This file also includes all of the dependencies used by
  * the plugin, and defines a function that starts the plugin.
  *
  * @link              http://code.tutsplus.com/tutorials/adding-custom-fields-to-simple-products-with-woocommerce--cms-27904
  * @package           CWF
  *
  * @wordpress-plugin
  * Plugin Name:       Tuts+ Custom WooCommerce Field
  * Plugin URI:        http://code.tutsplus.com/tutorials/adding-custom-fields-to-simple-products-with-woocommerce--cms-27904
  * Description:       Demonstrates how to add a custom field to a Simple Product.
  * Version:           1.0.0
  * Author:            Tom McFarlin
  * Author URI:        https://tommcfarlin.com
  * License:           GPL-2.0+
  * License URI:       http://www.gnu.org/licenses/gpl-2.0.txt
  */
  
 defined( 'WPINC' ) || die;
  
 include_once 'admin/class-tutsplus-custom-woocommerce-field.php';
 include_once 'public/class-tutsplus-custom-woocommerce-display.php';
  
 add_action( 'plugins_loaded', 'tutsplus_wc_input_start' );
 /**
  * Start the plugin.
  */
 function tutsplus_wc_input_start() {
  
     if ( is_admin() ) {
  
         $admin = new TutsPlus_Custom_WooCommerce_Field( 'tutsplus_text_field' );
         $admin->init();
     } else {
  
         $plugin = new TutsPlus_Custom_WooCommerce_Display( 'tutsplus_text_field' );
         $plugin->init();
     }
 }

public/class-tutsplus-custom-woocommerce-display.php

<?php
 
class TutsPlus_Custom_WooCommerce_Display {
 
    private $textfield_id;
 
    public function __construct() {
        $this->textfield_id = 'tutsplus_text_field';
    }
 
    public function init() {
 
        add_action(
            'woocommerce_product_thumbnails',
            array( $this, 'product_thumbnails' )
        );
    }
 
    public function product_thumbnails() {
 
        $teaser = get_post_meta( get_the_ID(), $this->textfield_id, true );
        if ( empty( $teaser ) ) {
            return;
        }
 
        echo esc_html( $teaser );
    }
}

admin/class-tutsplus-custom-woocommerce-field.php

<?php
 
class TutsPlus_Custom_WooCommerce_Field {
 
  private $textfield_id;
 
    public function __construct() {
        $this->textfield_id = 'tutsplus_text_field';
    }
 
    public function init() {
 
            add_action(
                'woocommerce_product_options_grouping',
                array( $this, 'product_options_grouping' )
            );
    }
 
    public function product_options_grouping() {
         
    }
}

Цей плагін мав додати новий елемент в адмін-панель продукту:
https://cms-assets.tutsplus.com/uploads/users/34/posts/27904/image/final-simple-product.jpg

Помилок не видає, чому це не працює?

Буду вдячний!

Прихований текст
P.S де є нормальні уроки по тому, як робити плагіни для вордпрес, хто знає - скиньте.Буду вдячний.

2 Востаннє редагувалося FakiNyan (06.01.2018 21:11:25)

Re: Wordpress - чому не працює самописний плагін

ostap34PHP написав:

Здрастуйте люди.
Робив я плагін для wordpress, woocommerce по підручнику.

Структура плагіну

  • admin/class-tutsplus-custom-woocommerce-field.php

  • public/class-tutsplus-custom-woocommerce-display.php

  • TutsPlus_Custom_WooCommerce_Field.php

Код

TutsPlus_Custom_WooCommerce_Field.php

 <?php
 /**
  * The plugin bootstrap file
  *
  * This file is read by WordPress to generate the plugin information in the
  * plugin admin area. This file also includes all of the dependencies used by
  * the plugin, and defines a function that starts the plugin.
  *
  * @link              http://code.tutsplus.com/tutorials/adding-custom-fields-to-simple-products-with-woocommerce--cms-27904
  * @package           CWF
  *
  * @wordpress-plugin
  * Plugin Name:       Tuts+ Custom WooCommerce Field
  * Plugin URI:        http://code.tutsplus.com/tutorials/adding-custom-fields-to-simple-products-with-woocommerce--cms-27904
  * Description:       Demonstrates how to add a custom field to a Simple Product.
  * Version:           1.0.0
  * Author:            Tom McFarlin
  * Author URI:        https://tommcfarlin.com
  * License:           GPL-2.0+
  * License URI:       http://www.gnu.org/licenses/gpl-2.0.txt
  */
  
 defined( 'WPINC' ) || die;
  
 include_once 'admin/class-tutsplus-custom-woocommerce-field.php';
 include_once 'public/class-tutsplus-custom-woocommerce-display.php';
  
 add_action( 'plugins_loaded', 'tutsplus_wc_input_start' );
 /**
  * Start the plugin.
  */
 function tutsplus_wc_input_start() {
  
     if ( is_admin() ) {
  
         $admin = new TutsPlus_Custom_WooCommerce_Field( 'tutsplus_text_field' );
         $admin->init();
     } else {
  
         $plugin = new TutsPlus_Custom_WooCommerce_Display( 'tutsplus_text_field' );
         $plugin->init();
     }
 }

public/class-tutsplus-custom-woocommerce-display.php

<?php
 
class TutsPlus_Custom_WooCommerce_Display {
 
    private $textfield_id;
 
    public function __construct() {
        $this->textfield_id = 'tutsplus_text_field';
    }
 
    public function init() {
 
        add_action(
            'woocommerce_product_thumbnails',
            array( $this, 'product_thumbnails' )
        );
    }
 
    public function product_thumbnails() {
 
        $teaser = get_post_meta( get_the_ID(), $this->textfield_id, true );
        if ( empty( $teaser ) ) {
            return;
        }
 
        echo esc_html( $teaser );
    }
}

admin/class-tutsplus-custom-woocommerce-field.php

<?php
 
class TutsPlus_Custom_WooCommerce_Field {
 
  private $textfield_id;
 
    public function __construct() {
        $this->textfield_id = 'tutsplus_text_field';
    }
 
    public function init() {
 
            add_action(
                'woocommerce_product_options_grouping',
                array( $this, 'product_options_grouping' )
            );
    }
 
    public function product_options_grouping() {
         
    }
}

Цей плагін мав додати новий елемент в адмін-панель продукту:
https://cms-assets.tutsplus.com/uploads/users/34/posts/27904/image/final-simple-product.jpg

Помилок не видає, чому це не працює?

Буду вдячний!

Прихований текст
P.S де є нормальні уроки по тому, як робити плагіни для вордпрес, хто знає - скиньте.Буду вдячний.

тут спілкуються українці, про політику, і інше (серед них є програмісти, але дуже мало, тому не заходьте туди лише з питаннями про програмування)
https://discord.gg/Zk29v4P
Подякували: ostap34PHP, leofun012