eコマースWebサイトを作成するために、WooCommerceの使用がWordPressとともに使用されています。あなたが私のようなWeb開発者である場合、内部とWooCommerceテンプレートシステムを知っている場合、アクションとフィルターは非常に素晴らしいスキルです。 WooCommerceについて知っていることをすべて知っているなら、少なくともあなたとWooCommerceのドキュメントだけで何かを実装できるほど上司がどれほど幸せになるかを考えてください。
これがすべてあなたに良いように聞こえる場合は、読み続けてください。WordPressとWooCommerceで何ができるかを並べて調べます。この記事のスタイル(そしてできれば今後さらに多くのことを含む)には、問題を提示してから、WordPressとWooCommerceのアクションとフィルターを使用してソリューションを作成することが含まれます。 アカウントの作成と更新のための有用なアクションeコマースのウェブサイトと一緒にCRMを使用することは非常に一般的です。 WooCommerceは、チェックアウトプロセス中または「私のアカウント」ページを介して新しい顧客またはユーザーがいつ登録するかを検出することを簡単にします。
前の例から続行して、顧客が請求書または配送先住所のいずれかを編集したときに、Salesforceに関する顧客の情報を更新したいのは当然です。 WOOCOMMERCE_CUSTOMER_SAVE_ADDRESSどちらのアドレスが編集され、ユーザーIDが与えられ、どのアドレスが編集されたかがすぐに実行されます。 $ _POSTを介してフォームフィールドを入手できることに注意してください。
オーバーライドフロントエンドタイトル、メッセージ、および説明
<span><span><?php </span></span><span><span>// Create Customer's Salesforce Account </span></span><span><span>add_action( 'woocommerce_created_customer', 'create_salesforce_account', 10, 3 ); </span></span><span><span>function create_salesforce_account( $customer_id, $new_customer_data, $password_generated ) { </span></span><span> </span><span> <span>// Get the New Customer's data </span></span><span> <span>$username = $new_customer_data['user_login']; </span></span><span> <span>$password = $new_customer_data['user_pass']; </span></span><span> <span>$email = $new_customer_data['user_email']; </span></span><span> <span>$role = $new_customer_data['role']; </span></span><span> </span><span> <span>// Getting the rest of the info for this customer </span></span><span> <span>$user = get_user_by( 'id', $customer_id ); </span></span><span> </span><span> <span>// Continue and send the information to Salesforce now </span></span><span><span>}</span></span>
セクションのタイトル、メッセージ、および説明は、使用するフィルターを知っていれば、簡単に変更できます。これらのフィルターを使用すると、顧客に表示されるものを最後の詳細までカスタマイズできます。アクションではなくフィルターを言っていることに気づきましたか? Woocommerceは、WordPressがそうであるように、これらの種類の値をオーバーライドするためのアクションを使用しないためです。
<span><span><?php </span></span><span><span>// Update Salesforce account with new shipping information </span></span><span><span>add_action( 'woocommerce_customer_save_address', 'update_salesforce_account', 10, 2 ); </span></span><span><span>function update_salesforce_account( $user_id, $load_address ) { </span></span><span> </span><span> <span>// Let's use a Switch statement to know which address we are updating </span></span><span> <span>switch ( $load_address ) { </span></span><span> <span>case 'billing': </span></span><span> <span>// Send billing info to Salesforce </span></span><span> <span>break; </span></span><span> </span><span> <span>case 'shipping': </span></span><span> <span>// Send shipping info to Salesforce </span></span><span> <span>break; </span></span><span> <span>} </span></span><span><span>}</span></span>
WOOCOMMERCE_CHECKOUT_LOGIN_MESSAGE CARTがログインしていないことを検出したときにチェックアウトページに表示され、サインインするオプションが得られます。例:顧客を返しますか?ログインするにはここをクリックしてください
WOOCOMMERCE_LOST_PASSWORD_MESSAGE「私のアカウント」ページに表示されます。このページでは、パスワードをリセットするためにユーザー名または電子メールを入力するように指示します。例:パスワードを紛失しましたか?ユーザー名またはメールアドレスを入力してください。電子メールで新しいパスワードを作成するリンクが届きます。
woocommerce_my_account_my_downloads_title「myアカウント」ページに表示され、ダウンロードセクションのタイトルを設定します。たとえば、利用可能なダウンロード。
woocommerce_my_account_my_orders_title「myアカウント」ページに表示され、注文セクションのタイトルを設定します。たとえば、最近の注文。
これらのかなりの数があり、使用法はもちろん名前を除いてほぼ同一です。それらを変更する方法に関するいくつかの例を以下に示します。
今のところそれだけです。私たちはウコマースのボンネットの下にあるものを探求し始めただけであり、一連の記事を進むにつれて、WooCommerceとWordPressのフックシステムを使用して設定したものを生成するために大きく依存するより複雑なモジュールを構築する予定です。やる心。
<span><span><?php </span></span><span><span>// Create Customer's Salesforce Account </span></span><span><span>add_action( 'woocommerce_created_customer', 'create_salesforce_account', 10, 3 ); </span></span><span><span>function create_salesforce_account( $customer_id, $new_customer_data, $password_generated ) { </span></span><span> </span><span> <span>// Get the New Customer's data </span></span><span> <span>$username = $new_customer_data['user_login']; </span></span><span> <span>$password = $new_customer_data['user_pass']; </span></span><span> <span>$email = $new_customer_data['user_email']; </span></span><span> <span>$role = $new_customer_data['role']; </span></span><span> </span><span> <span>// Getting the rest of the info for this customer </span></span><span> <span>$user = get_user_by( 'id', $customer_id ); </span></span><span> </span><span> <span>// Continue and send the information to Salesforce now </span></span><span><span>}</span></span>
次の記事では、他の関心のある項目の中で特定の基準を満たす購入とともに無料の製品を提供したい現実世界のケースシナリオに取り組みます。
WooCommerceのアクションとフィルターの習得に関するよくある質問
add_action( 'woocommerce_before_cart'、 'your_custom_function');
function your_custom_function(){
// Your Code Here
}
この例「アクションを追加したいフックであり、「Your_custom_function」は実行される関数です。
woocommerceフックからアクションを削除するには、remove_action()関数を使用できます。この関数には、add_action()関数と同じパラメーターが必要です。フックの名前と削除する関数。例は次のとおりです:
remaid_action( 'woocommerce_before_cart'、 'your_custom_function');
WooCommerceフックのデフォルト動作を変更するには、フィルターを使用できます。フィルターを使用すると、データがデータベースまたはブラウザに送信される前にデータを変更できます。例は次のとおりです:
add_filter( 'woocommerce_cart_item_price'、 'modify_cart_item_price'、10、2);
function modify_cart_item_price($ price、$ cart_item){}
この例では、「woocommerce_cart_item_price 'はフィルターフック、' modify_cart_item_price 'はカスタム関数、「10」はあなたの関数の優先順位です、「2」はパラメーターの数です関数は受け入れます。
WooCommerceチェックアウトページにカスタムフィールドを追加するにはどうすればよいですか?
echo ''; array(
'type' => 'text'、
'class' => array( 'input-text')、
'label' => __( 'custom field')、
「必須」=> true、
)、$ checkout-> get_value( 'custom_field'));
echo '';
}
カスタムフィールドを追加したいフック、および「add_custom_checkout_field」はカスタムフィールドを作成する関数です。製品価格はプログラムで、 'woocommerce_product_get_price'フィルターフックを使用できます。例は次のとおりです。
add_filter( 'woocommerce_product_get_price'、 'modify_product_price'、10、2);
function modify_product_price($、$、product){
// return
$ new_price;
以上がウコンマースアクションとフィルターのマスターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。