私はアイテム購入のメニュー項目を表示/非表示にしたいワードプレスのウェブサイトを構築しようとしています。 WooCommerceプラグインを使用してアイテムを購入しています。商品購入のワードプレスメニューを隠す
商品を購入すると、商品に関連するリンクがメニュー項目としてメニューに表示されます。誰かが私にヒントを与えることができれば、どうすればいいのですか?問題ではありませんコードをコード化したり編集したりする必要があります。
私はアイテム購入のメニュー項目を表示/非表示にしたいワードプレスのウェブサイトを構築しようとしています。 WooCommerceプラグインを使用してアイテムを購入しています。商品購入のワードプレスメニューを隠す
商品を購入すると、商品に関連するリンクがメニュー項目としてメニューに表示されます。誰かが私にヒントを与えることができれば、どうすればいいのですか?問題ではありませんコードをコード化したり編集したりする必要があります。
あなたの質問はあまり明確ではないので、顧客が購入したすべてのアイテム(ユーザーID)を取得し、一種のリストまたはメニューとして表示するとします。
以下に2つの機能があります。
1)最初の顧客は、現在の顧客のすべての購入商品IDを取得します(オプションの引数は$user_id
)。タイトルとリンクとその製品のためのメニュー(またはリスト)が表示されます
2)第1 ...ここ
このコードです()あなたのアクティブな子テーマ鉱石テーマのfunction.phpファイルに行く:
function get_customer_products($user_id = null){
if(empty($user_id) && is_user_logged_in())
$user_id = get_current_user_id();
if(! empty($user_id) && ! is_admin()){
$customer_orders = get_posts(array(
'meta_key' => '_customer_user',
'meta_value' => $user_id,
'post_type' => 'shop_order',
'numberposts' => -1,
'post_status' => 'wc-completed', // 'completed' order status
));
$product_ids = array();
foreach($customer_orders as $customer_order){
$_order = wc_get_order($customer_order->ID);
foreach($_order->get_items() as $item){
// Avoiding duplicates
if(!in_array($item['product_id'], $product_ids))
$product_ids[] = $item['product_id'];
}
}
return $product_ids;
}
}
function display_customer_product_list(){
// Getting current customer bought products IDs
$product_ids = get_customer_products();
if(!empty($product_ids)){
$output_html = '<div class="custom-product"><ul class="custom-menu">';
foreach($product_ids as $product_id){
$product = new WC_Product($product_id);
$output_html .= '<li><a href="'.$product->get_permalink().'">'.$product->get_title().'</a></li>';
}
$output_html .= '</ul></div>';
echo $output_html;
}
}
あなたは何を達成するために、できるようになることを材料とUSAGE
<div class="custom-product">
<ul class="custom-menu">
<li><a href="http://www.example.com/product/slug1/">Product Title 1</a></li>
<li><a href="http://www.example.com/product/slug2/">Product Title 2</a></li>
<li><a href="http://www.example.com/product/slug3/">Product Title 3</a></li>
</ul>
</div>
:
display_customer_product_list();
この意志出力何かのように:
は、その後、あなたは、あなたのテーマのPHPのテンプレート/ファイルで、どこでもこの方法を使用することができます2番目の関数を探したり、並べ替えたり、アクティブなテーマのheader.phpテンプレートの最初のテンプレートを使うだけです...
表示する条件として、既存のメニューを非表示にするには、
if(count(get_customer_products()) > 0){
// Displaying customer bought product items
} else {
// Displaying normal menu items
}
何をしようとしていますか?すでにカートに入っているアイテムを表示するカートリンク/ポップアップのようなものがありますか? – RST
誰シンプルなロジック、(製品を購入された) は、ナビゲーションメニューの項目を表示する場合は、製品の購入 上のナビゲーションメニュー項目を表示または非表示に(項目は任意のページ可能) はメニューページ項目を非表示にします。 –