WooCommerceアクションとフィルターのマスタリングに関するシリーズの2番目の記事へようこそ。前の記事では、非常に基本的なものでしたが、顧客の請求と配送先住所の処理と、顧客がWooCommerceを介して登録し、SalesforceのようなサードパーティのWebサイトに送信したときに何が起こるかについて説明します。 この2番目の記事では、WooCommerceを使用してeコマースWebサイトを作成しているときに遭遇する可能性のある現実世界のシナリオで、いくつかの巧妙な方法でカートを操作します。
キーテイクアウト
この記事では、プログラムで製品の追加と削除、カートの空き地、インセンティブ製品システムのセットアップなど、アクションとフィルターを使用してWooCommerceカートを操作する方法に関する詳細な指示を提供します。
カートに製品をプログラム的に追加するには、1行のコードのみが必要ですが、テンプレート_redirectアクションなど、すべてのページで実行するアクションでこれを実行しないことが重要です。- カートから製品をプログラム的に削除することは、それを追加するよりも複雑です。このコードは、カート内の各製品のサイクルを提供し、指定された製品を削除します。
- この記事では、WooCommerce_ProCeed_To_Checkoutアクションを使用して、プログラムでカートを空にするボタンを作成する方法を示しています。 この記事は、インセンティブ製品システムを構築する実世界のシナリオを提供します。このシナリオでは、特定のカテゴリから注文または製品の最小額を持っているなど、特定の要件を満たす顧客に製品が配られます。 🎜>
- カートに製品をプログラム的に追加します
- カートに製品をプログラムで追加すると、コードの1行しか必要ありません。あなたがしている唯一のブレインストーミングは、いつ、またはなぜそれをやりたいのかを決定することです。この記事の後半で、この記事の後半で、現実世界のシナリオに取り組むときに、これについて詳しく説明します。
- カートに製品を追加するのに必要なのは、次のことだけです。
- 注意事項として、Template_redirectアクションなど、すべてのページで実行されるアクションでこれを実行しないか、これらの製品の1つをすべてのページのロードまたはリロードするように、これを実行しないようにしてください。可能な限りこれを避けてください:
<span><span><?php </span></span><span><span>// Takes the Product ID and the Quantity </span></span><span><span>WC()->cart->add_to_cart( 73, 1 );</span></span></span>
プログラムでカートから製品を削除します
この質問が、ほとんど回答がほとんどないさまざまなフォーラムやウェブサイトで無限の数を尋ねられているのを見ました。うまくいけば、これが次にカートから製品を取り外したいときに役立つことを願っています。また、あなたがする唯一のブレーンストーミングは、いつ、またはカートから製品を削除したいのかということです。次のコードは、誰もが店の製品をチェックアウトすることを防ぎます。なぜあなたがそのようなことをしたいのかはわかりませんが、カートに製品を追加したときの前の例ほど単純ではないカートから製品を取り外すための手順を示します。
<span><span><?php </span></span><span><span>// template_redirect runs once for every page so you'll be </span></span><span><span>// increasing the quantity by one on every page load </span></span><span><span>add_action( 'template_redirect', 'add_random_product' ); </span></span><span><span>function add_random_product() { </span></span><span> <span>WC()->cart->add_to_cart( 73, 1 ); </span></span><span><span>}</span></span></span>カートをプログラム的に空にします
プログラムでカートを空にする方法をよりよく説明するには、顧客がクリックしてカートをクリアできるようにするボタンをカートに追加しましょう。
WooCommerce_ProCeed_To_Checkoutアクションを使用してみましょう。

次のステップは、ボタンがクリックされるのを聞くことで、クリックするとカートがクリアされます。そのために、Template_redirectアクションに接続します。
<span><span><?php </span></span><span><span>add_action( 'template_redirect', 'remove_product_from_cart' ); </span></span><span><span>function remove_product_from_cart() { </span></span><span> <span>// Run only in the Cart or Checkout Page </span></span><span> <span>if( is_cart() || is_checkout() ) { </span></span><span> <span>// Set the product ID to remove </span></span><span> <span>$prod_to_remove = 56; </span></span><span> </span><span> <span>// Cycle through each product in the cart </span></span><span> <span>foreach( WC()->cart->cart_contents as $prod_in_cart ) { </span></span><span> <span>// Get the Variation or Product ID </span></span><span> <span>$prod_id = ( isset( $prod_in_cart['variation_id'] ) && $prod_in_cart['variation_id'] != 0 ) ? $prod_in_cart['variation_id'] : $prod_in_cart['product_id']; </span></span><span> </span><span> <span>// Check to see if IDs match </span></span><span> <span>if( $prod_to_remove == $prod_id ) { </span></span><span> <span>// Get it's unique ID within the Cart </span></span><span> <span>$prod_unique_id = WC()->cart->generate_cart_id( $prod_id ); </span></span><span> <span>// Remove it from the cart by un-setting it </span></span><span> <span>unset( WC()->cart->cart_contents[$prod_unique_id] ); </span></span><span> <span>} </span></span><span> <span>} </span></span><span> </span><span> <span>} </span></span><span><span>}</span></span></span>ボタンを押した後、通常のテンプレートの代わりにcart-empty.phpが表示されていることに気付くでしょう。
カートから製品を追加または削除する方法を確立したので、カートを完全に空にしても、この種のものを知ることが大きな違いを生む現実世界のシナリオを構築しましょう。
<span><span><?php </span></span><span><span>add_action( 'woocommerce_proceed_to_checkout', 'insert_empty_cart_button' ); </span></span><span><span>function insert_empty_cart_button() { </span></span><span> <span>// Echo our Empty Cart button </span></span><span> <span>echo '<input type="submit" name="empty_cart" value="Empty Cart">'; </span></span><span><span>}</span></span></span>インセンティブ製品
現実世界のシナリオでは、すべての顧客にインセンティブとして製品を提供できるシステムを構築することで、これらすべてを機能させることになります。まあ、すべての顧客と正確にはなく、特定の要件に基づいて資格がある人だけです。

顧客へのインセンティブとして、お好みの製品を提供できる必要があります。
ソリューション
以下に基づいてインセンティブ製品を配ることができるシステムを構築します。
カートに特定の製品がある注文の最低総額 特定のカテゴリから製品を持っている-
これらの基準のいずれかに資格を与えることにより、顧客にインセンティブ製品を提供できるだけでなく、それらを組み合わせる力があります。たとえば、順番に言葉で言えば、カートに少なくとも100ドルの合計100ドルと「衣類」カテゴリの製品をテストすることができます。
1分で書く機能と、問題/ソリューションシナリオでそれぞれが何をするかを簡単に見てみましょう。- get_id_from_product($ product、$ check_variations = true) - 製品IDを取得して返します。バリエーションIDを考慮に入れるので、実際の製品IDを確認する前にこれらを確認してください。
qualififies_basedon_specific_product($ product_required) - 指定された製品IDをカート内のアイテムの1つとして使用することにより、顧客がインセンティブの資格があるかどうかを確認します。
qualififies_basedon_weight($ weight_required) - 顧客がカートに最小重量を持っていることでインセンティブの資格があるかどうかを確認します。
qualififies_basedon_cart_total($ total_required) - 税金が計算される前に最小合計金額を持つことにより、顧客がインセンティブの資格があるかどうかを確認します。
qualififies_basedon_product_category($ category) - 顧客がカート内の特定のカテゴリの製品を持っていることでインセンティブの資格があるかどうかを確認します。
add_incentive_to_cart($ product_id) - 顧客が資格がある場合は、インセンティブ製品をカートに追加します
remove_incentive_from_cart($ product_id) - 顧客が製品の資格を持っていなかった場合、インセンティブ製品をカートに削除します。
qualifies_for_incentive() - これは、顧客がインセンティブの資格を得るために一致する必要があるルールを持っているため、魔法が起こる場所です。この関数は、インセンティブプログラムのロジックを処理します。
-
- 1つの要件のみ
<span><span><?php </span></span><span><span>// Takes the Product ID and the Quantity </span></span><span><span>WC()->cart->add_to_cart( 73, 1 );</span></span></span>
<span><span><?php </span></span><span><span>// template_redirect runs once for every page so you'll be </span></span><span><span>// increasing the quantity by one on every page load </span></span><span><span>add_action( 'template_redirect', 'add_random_product' ); </span></span><span><span>function add_random_product() { </span></span><span> <span>WC()->cart->add_to_cart( 73, 1 ); </span></span><span><span>}</span></span></span>
カートの合計税を除く<span><span><?php </span></span><span><span>add_action( 'template_redirect', 'remove_product_from_cart' ); </span></span><span><span>function remove_product_from_cart() { </span></span><span> <span>// Run only in the Cart or Checkout Page </span></span><span> <span>if( is_cart() || is_checkout() ) { </span></span><span> <span>// Set the product ID to remove </span></span><span> <span>$prod_to_remove = 56; </span></span><span> </span><span> <span>// Cycle through each product in the cart </span></span><span> <span>foreach( WC()->cart->cart_contents as $prod_in_cart ) { </span></span><span> <span>// Get the Variation or Product ID </span></span><span> <span>$prod_id = ( isset( $prod_in_cart['variation_id'] ) && $prod_in_cart['variation_id'] != 0 ) ? $prod_in_cart['variation_id'] : $prod_in_cart['product_id']; </span></span><span> </span><span> <span>// Check to see if IDs match </span></span><span> <span>if( $prod_to_remove == $prod_id ) { </span></span><span> <span>// Get it's unique ID within the Cart </span></span><span> <span>$prod_unique_id = WC()->cart->generate_cart_id( $prod_id ); </span></span><span> <span>// Remove it from the cart by un-setting it </span></span><span> <span>unset( WC()->cart->cart_contents[$prod_unique_id] ); </span></span><span> <span>} </span></span><span> <span>} </span></span><span> </span><span> <span>} </span></span><span><span>}</span></span></span>
<span><span><?php </span></span><span><span>add_action( 'woocommerce_proceed_to_checkout', 'insert_empty_cart_button' ); </span></span><span><span>function insert_empty_cart_button() { </span></span><span> <span>// Echo our Empty Cart button </span></span><span> <span>echo '<input type="submit" name="empty_cart" value="Empty Cart">'; </span></span><span><span>}</span></span></span>
非常に柔軟なコードベースがあるため、それを混同して、本当にインセンティブプログラムをユニークにすることができます。以下は、必要に応じてより多くの条件を追加することがどれほど簡単かを示すいくつかの例です。 カート内のカテゴリまたは最小カートの合計
製品<span><span><?php </span></span><span><span>// Let's wait for the button to be clicked on </span></span><span><span>add_action( 'template_redirect', 'empty_cart_button_handler' ); </span></span><span><span>function empty_cart_button_handler() { </span></span><span> <span>if( isset( $_POST['empty_cart'] ) && $_SERVER['REQUEST_METHOD'] == "POST" ) { </span></span><span> <span>WC()->cart->empty_cart( true ); </span></span><span> <span>} </span></span><span><span>}</span></span></span>
それよりも高度になり、より複雑なシナリオを作成することもできます。次のステップは、これを「クラス」に変えることです。これにより、複数のインセンティブプログラムを作成できるようになります。 この記事はウコンマースのアクションとフィルターに関するよくある質問(FAQ)<span><span><?php </span></span><span><span>/** </span></span><span><span> * Will extract the Variation ID if available otherwise it will get the Product ID </span></span><span><span> * <span>@param $product Product </span></span></span><span><span> * <span>@param <span>bool</span> $check_variations Whether or not to check for variation IDs </span></span></span><span><span> * <span>@return <span>mixed</span> </span></span></span><span><span> */ </span></span><span><span>function get_id_from_product( $product, $check_variations = true ) { </span></span><span> <span>// Are we taking variations into account? </span></span><span> <span>if( $check_variations ) { </span></span><span> <span>// Ternary Operator </span></span><span> <span>// http://php.net/manual/en/language.operators.comparison.php </span></span><span> <span>return ( isset( $product['variation_id'] ) </span></span><span> <span>&& ! empty( $product['variation_id']) </span></span><span> <span>&& $product['variation_id'] != 0 ) </span></span><span> <span>? $product['variation_id'] </span></span><span> <span>: $product['product_id']; </span></span><span> <span>} else { </span></span><span> <span>// No variations, just need the product IDs </span></span><span> <span>return $product['product_id']; </span></span><span> <span>} </span></span><span><span>} </span></span><span> </span><span><span>/** </span></span><span><span> * Checks the existence of a specific product in the cart </span></span><span><span> * <span>@param $product_required The Product ID required to be in the cart </span></span></span><span><span> * <span>@return <span>bool</span> </span></span></span><span><span> */ </span></span><span><span>function qualifies_basedon_specific_product( $product_required ) { </span></span><span> <span>/* </span></span><span><span> * We only want to run this on the cart or checkout page </span></span><span><span> */ </span></span><span> <span>if( is_cart() || is_checkout () ) { </span></span><span> <span>foreach( WC()->cart->cart_contents as $key => $product_in_cart ) { </span></span><span> <span>if( $product_required == get_id_from_product( $product_in_cart ) ) { </span></span><span> <span>return true; </span></span><span> <span>} </span></span><span> <span>} </span></span><span> <span>// Return false in case anything fails </span></span><span> <span>return false; </span></span><span> <span>} </span></span><span><span>} </span></span><span> </span><span><span>/** </span></span><span><span> * Checks the cart for the weight required to qualify for the incentive </span></span><span><span> * <span>@param $weight_required Weight Required </span></span></span><span><span> * <span>@return <span>bool</span> </span></span></span><span><span> */ </span></span><span><span>function qualifies_basedon_weight( $weight_required ) { </span></span><span> </span><span> <span>/* </span></span><span><span> * We only want to run this on the cart or checkout page </span></span><span><span> */ </span></span><span> <span>if( is_cart() || is_checkout () ) { </span></span><span> <span>if( $weight_required >= WC()->cart->cart_contents_weight ) { </span></span><span> <span>return true; </span></span><span> <span>} </span></span><span> <span>} </span></span><span> <span>// Return false in case anything fails </span></span><span> <span>return false; </span></span><span><span>} </span></span><span> </span><span><span>/** </span></span><span><span> * Checks the cart for the Total excluding taxes </span></span><span><span> * <span>@param $total_required </span></span></span><span><span> * <span>@return <span>bool</span> </span></span></span><span><span> */ </span></span><span><span>function qualifies_basedon_cart_total( $total_required ) { </span></span><span> <span>/* </span></span><span><span> * We only want to run this on the cart or checkout page </span></span><span><span> */ </span></span><span> <span>if( is_cart() || is_checkout () ) { </span></span><span> <span>if( WC()->cart->subtotal_ex_tax >= $total_required ) { </span></span><span> <span>return true; </span></span><span> <span>} </span></span><span> <span>} </span></span><span> <span>// Return false in case anything fails </span></span><span> <span>return false; </span></span><span><span>} </span></span><span> </span><span><span>/** </span></span><span><span> * Checks the cart to verify whether or not a product from a Category is in the cart </span></span><span><span> * <span>@param $category Accepts the Product Category Name, ID, Slug or array of them </span></span></span><span><span> * <span>@return <span>bool</span> </span></span></span><span><span> */ </span></span><span><span>function qualifies_basedon_product_category( $category ) { </span></span><span> <span>foreach( WC()->cart->cart_contents as $key => $product_in_cart ) { </span></span><span> <span>if( has_term( $category, 'product_cat', get_id_from_product( $product_in_cart, false ) ) ) { </span></span><span> <span>return true; </span></span><span> <span>} </span></span><span> <span>} </span></span><span> <span>// Return false in case anything fails </span></span><span> <span>return false; </span></span><span><span>} </span></span><span> </span><span><span>/** </span></span><span><span> * Adds a specific product to the cart </span></span><span><span> * <span>@param $product_id Product to be added to the cart </span></span></span><span><span> */ </span></span><span><span>function add_incentive_to_cart( $product_id ) { </span></span><span> <span>// Check the cart for this product </span></span><span> <span>$cart_id = WC()->cart->generate_cart_id( $product_id ); </span></span><span> <span>$prod_in_cart = WC()->cart->find_product_in_cart( $cart_id ); </span></span><span> <span>// Add the product only if it's not in the cart already </span></span><span> <span>if( ! $prod_in_cart ) { </span></span><span> <span>WC()->cart->add_to_cart( $product_id ); </span></span><span> <span>} </span></span><span><span>} </span></span><span> </span><span><span>/** </span></span><span><span> * Removes a specific product from the cart </span></span><span><span> * <span>@param $product_id Product ID to be removed from the cart </span></span></span><span><span> */ </span></span><span><span>function remove_incentive_from_cart( $product_id ) { </span></span><span> <span>$prod_unique_id = WC()->cart->generate_cart_id( $product_id ); </span></span><span> <span>// Remove it from the cart by un-setting it </span></span><span> <span>unset( WC()->cart->cart_contents[$prod_unique_id] ); </span></span><span><span>}</span></span></span>
woocommerceアクションとフィルターの違いは何ですか?アクションとフィルターは、WooCommerceの2つのタイプのフックです。アクションを使用すると、Webサイトに新しいセクションを追加したり、チェックアウトプロセスを変更したりするなど、機能を追加または変更できます。一方、フィルターでは、WooCommerce内のデータを変更できます。たとえば、フィルターを使用して製品の価格を変更したり、ボタンのテキストを変更したりできます。 WooCommerceカートにカスタムフィールドでは、 'Woocommerce_cart_item_data'フィルターを使用できます。このフィルターを使用すると、CARTアイテムにカスタムデータを追加できます。次に、「woocommerce_get_item_data 'フィルターを使用してカートにこのカスタムデータを表示できます。およびフィルター。たとえば、「woocommerce_checkout_fields 'フィルターを使用してチェックアウトフィールドを変更できます。または、「woocommerce_checkout_process'アクション」を使用してチェックアウトプロセスにカスタム検証を追加します。はい、WooCommerceはWooCommerceから送信された電子メールを変更できるいくつかのフックを提供します。たとえば、「WOOCOMMERCE_EMAIL_HEADER」および「WOOCOMMERCE_EMAIL_FOOTER」アクションを使用して、電子メールのヘッダーとフッターを変更するか、「WOOCOMMERCE_EMAIL_ORDER_DETAILS」アクションを使用して、電子メールに含まれる注文の詳細を変更します。
woocommerceのボタンのテキストを変更するにはどうすればよいですか?
フックを使用してWooCommerce製品ページを変更できますか? 。たとえば、「WOOCOMMERCE_BEFORE_SINGLE_PRODUCT_SUMMARY」アクションを使用して、製品の要約の前にカスタムコンテンツを追加できます。
woocommerceの注文詳細を変更するには、 'woocommerce_order_details_after_order_orde_table'アクションを使用できます。このアクションを使用すると、注文詳細ページに注文テーブルの後にカスタムコンテンツを追加できます。 'woocommerce_checkout_fields'フィルターで、WooCommerceのチェックアウトページにカスタムフィールドを追加します。このフィルターを使用すると、新しいフィールドの追加を含むチェックアウトフィールドを変更できます。 、「woocommerce_get_price_html」フィルターを使用できます。このフィルターを使用すると、製品の価格を含む価格HTMLを変更できます。
以上がカートを操作するためのwoocommerceアクションとフィルターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ブログをwordpress.comからwordpress.orgに移動しますか? 多くの初心者はWordPress.comから始めますが、すぐに制限を実現し、自己ホストされたWordPress.orgプラットフォームに切り替えたいと考えています。 このステップバイステップガイドでは、WordPress.comからWordPress.orgにブログを適切に移動する方法を示します。 なぜwordpress.comからwordpress.orgに移行するのですか? WordPress.comを使用すると、誰でもアカウントを作成できます

WordPress Webサイトやソーシャルメディアアカウントを自動化する方法をお探しですか? 自動化を使用すると、WordPressのブログ投稿やFacebook、Twitter、LinkedIn、Instagramなどで自動的に共有できます。 この記事では、IFTTT、Zapier、およびUncanny Automatorを使用してWordPressとソーシャルメディアを簡単に自動化する方法を紹介します。 WordPressとソーシャルメディアを自動化する理由 WordPreを自動化します

ほんの数日前、ユーザーの1人が異常な問題を報告しました。問題は、彼がカスタムメニュー項目の限界に達することです。メニュー項目の制限に到達した後に保存するコンテンツはまったく保存されません。この問題を聞いたことがないので、ローカルインストールで試してみることにしました。 200を超えるメニュー項目が作成され、保存されました。効果はとても良いです。 100個のアイテムをドロップダウンリストに移動し、それらを非常によく保存します。その後、サーバーに関係している必要があることがわかりました。さらなる研究の後、他の多くの人が同じ問題に遭遇したようです。深く掘り下げた後、この問題を強調したTRACチケット(#14134)を見つけました。よく読んでください

WordPressのカスタム分類法にカスタムメタフィールドを追加する必要がありますか? カスタム分類法により、カテゴリとタグ以外にコンテンツを整理できます。他のフィールドを追加してそれらを説明するのが便利な場合があります。 この記事では、作成した分類法に他のメタフィールドを追加する方法を紹介します。 カスタムメタフィールドはいつカスタム分類法に追加する必要がありますか? WordPressサイトで新しいコンテンツを作成すると、2つのデフォルトの分類法(カテゴリとタグ)を使用して整理できます。 一部のWebサイトは、カスタム分類法の使用から恩恵を受けます。これらを使用すると、コンテンツを他の方法で並べ替えることができます。 例えば、

Windows Live Writerは、デスクトップからWordPressブログに直接投稿することができる多用途のツールです。これは、ブログを更新するためにWordPress管理パネルにログインする必要がないことを意味します。このチュートリアルでは、Windows Live Writerを使用してWordPressブログのデスクトップ公開を有効にする方法を紹介します。 WordPressにWindows Live Writerをセットアップする方法 ステップ1:WordprでWindows Live Writerを使用するには

最近、ユーザーの1人が非常に奇妙なインストールの問題を報告しました。投稿を書くとき、彼らは彼らが書くものは何も見ることができません。ポストエディターのテキストは白だからです。さらに、すべてのVisual Editorボタンが欠落しており、VisualからHTMLに切り替える機能も機能しません。この記事では、WordPress Visual Editorで白いテキストと欠落したボタンの問題を修正する方法を示します。 初心者に注意:他のWebサイトのスクリーンショットで見られる隠されたボタンを探しているなら、キッチンシンクを探しているかもしれません。 Kitchen Sinkアイコンをクリックして、下線、Wordからのコピーなどの他のオプションを表示する必要があります。

WordPressのユーザーメールでアバターを表示しますか? Gravatarは、ユーザーのメールアドレスをオンラインアバターに接続するネットワークサービスです。 WordPressは、コメントセクションに訪問者のプロフィール写真を自動的に表示しますが、サイトの他の領域に追加することもできます。 この記事では、WordPressのユーザーメールでアバターを表示する方法を紹介します。 グラバタルとは何ですか、なぜそれを表示する必要がありますか? Gravatarは、世界的に認識されているアバターの略で、画像をメールアドレスにリンクできるようになります。 ウェブサイトがサポートしている場合

WordPressのデフォルトのメディアアップロード場所を変更しますか? メディアファイルを他のフォルダーに移動すると、Webサイトの速度とパフォーマンスが向上し、バックアップをより速く作成することができます。また、自分に最適な方法でファイルを整理する自由を提供します。 この記事では、WordPressのデフォルトのメディアアップロード場所を変更する方法を紹介します。 デフォルトのメディアアップロード場所を変更する理由 デフォルトでは、WordPressは/wp-content/uploads/folderにすべての画像およびその他のメディアファイルを保存します。 このフォルダーには、さまざまな年と数ヶ月の子供がいます


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版
中国語版、とても使いやすい
