WooCommerce では、チェックアウト確認メールと管理注文ページに注文詳細のメタデータを表示します
P粉022140576
P粉022140576 2023-08-15 12:06:40
0
1
324
当社では「キット」と定義されている製品を多数ご用意しています。他の製品で構成された製品リストです。スイートを定義するデータはメタデータ配列に保存されます。製品ページとショッピング カートにメタデータを表示するフックを作成しました。 「注文完了メール」や「管理者注文ページ」でも同様の操作を行う必要があるのですが、やり方がわかりません。これは私が作成したフックです:
add_filter( 'bis_show_kit_meta', 'bis_show_kit_meta_contents', 10, 3 ); 関数 bis_show_kit_meta_contents($productID) { グローバル $wpdb; $postMeta = get_post_meta($productID,'',true); if ((isset($postMeta['bis_kit_id'])) and ($postMeta['bis_kit_id'][0] > 1)) { echo 'これは次のアイテムが含まれるキットです:
'; echo $postMeta['bis_kit_type'][0].'
'; foreach($postMeta as $kititem) { foreach ($kititem as $value) { $newvalue = unserialize($value); if ($newvalue) { $newvalue2 = unserialize($newvalue); if($newvalue2['type']=="キットアイテム"){ echo '
  • ' .$newvalue2['quantity']. ' -> ' .chr(9). $newvalue2['name']. '
  • '; } } } } } }
    現在の関数は、子テーマの対応するテンプレートにすでにフックされています。 同様の関数を customer-completed-email.php ファイルに適用する方法も、管理者の編集注文ページのどこにフックすればよいかもわかりません。 別の投稿で、必要なことと似たコードを見つけましたが、管理者の順序への変更がどのファイルに含まれているかわかりません。 私が見つけたコードは次のとおりです。
    add_action('woocommerce_before_order_itemmeta','woocommerce_before_order_itemmeta',10,3); function woocommerce_before_order_itemmeta($item_id, $item, $product){ ... }
    アドバイスをいただければ幸いです
    P粉022140576
    P粉022140576

    全員に返信 (1)
    P粉736935587

    WooCommerce には、独自のフックを追加する代わりに、WooCommerce テンプレートで使用できるフックがすでに多数あります...

    良い開発ルールは、最初に既存のフックを使用することです。便利なフックや利用可能なフックがない場合は、子テーマを介して WooCommerce テンプレートをオーバーライドできます。なぜ?テンプレートは時々更新されるため、編集したテンプレートを更新する必要がありますが、フックは更新しないからです。

    「顧客が注文を完了しました」通知の場合は、次のようにwoocommerce_order_item_meta_endアクション フックを使用します:

    リーリー

    これにより、「顧客が完了した注文」通知にのみカスタム メタデータを表示できるようになります。

    または、フックを同じ関数変数パラメーターを持つwoocommerce_order_item_meta_startに置き換えることもできます。

    コードを子テーマのfunctions.phpファイルまたはプラグインに配置します。

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!