web-dev-qa-db-ja.com

Woocommerce商品タイプに新しい商品タイプを追加する方法

Woocommerceプラグインに新しいカスタム "product type"を追加したいです。

enter image description here

現在存在している商品タイプのファイルの1つを複製しようとしました (woocommerceテンプレート構造) 新しいファイル(ファイル名とコメント内の名前)として/しかし動作しませんでした

enter image description here

7
Amino

カートに追加テンプレートは、あなたがする必要がある多くのことのうちの1つにすぎません。各製品タイプは/includes/フォルダーに独自のクラスを持っています。それぞれがWC_Productクラスを拡張します。

スクリーンキャップをしたリストにアイテムを追加するには(add-to-cart.phpテンプレートとは異なり、管理者側でフロントエンドではありません)、product_type_selectorをフィルタリングする必要があります。

add_filter( 'product_type_selector', 'wpa_120215_add_product_type' );
function wpa_120215_add_product_type( $types ){
    $types[ 'your_type' ] = __( 'Your Product Type' );
    return $types;
}

それからあなたはあなたの製品クラスを宣言する必要があります。標準の命名システムはWC_Product_Type_Classなので、この例では次のようになります。

class WC_Product_Your_Type extends WC_Product{
    /**
     * __construct function.
     *
     * @access public
     * @param mixed $product
     */
    public function __construct( $product ) {
        $this->product_type = 'your_type'; // Deprecated as of WC3.0 see get_type() method
        parent::__construct( $product );
    }

     /**
     * Get internal type.
     * Needed for WooCommerce 3.0 Compatibility
     * @return string
     */
    public function get_type() {
        return 'your_product';
    }
}

あなたは非常に複雑な質問をしています、そして私はより完全な答えを提供することができません。うまくいけば、これは正しい道にあなたを設定します。 WooCommerceのコードを読むことを強くお勧めします。それは非常によくコメントされていて、あなたは彼らがどのように異なる製品タイプを扱っているかを見ることができます。

編集 商品タイプクラスにWC3.0互換性を追加しました。

18
helgatheviking