Статьи

Освоение действий и фильтров WooCommerce

Использование WooCommerce вместе с WordPress для создания сайтов электронной коммерции находится на подъеме. Если вы такой же веб-разработчик, как я, то очень важно знать все тонкости системы шаблонов WooCommerce, а также ее действия и фильтры. Подумайте, насколько счастлив был бы ваш начальник, если бы вы знали все, что нужно знать о WooCommerce, или, по крайней мере, достаточно, чтобы иметь возможность реализовать что-либо с минимальной помощью, только вы и документация WooCommerce.

Если все это звучит хорошо для вас, продолжайте читать, и мы рассмотрим, что можно сделать, работая вместе с WordPress и WooCommerce. Стиль этой статьи (и, надеюсь, еще много) будет включать в себя представление о проблеме, а затем поиск решения с использованием действий и фильтров WordPress и WooCommerce.

Полезные действия для создания учетной записи и обновления

Распространено использование CRM вместе с вашим сайтом электронной коммерции. WooCommerce позволяет нам легко определять, когда новый клиент или пользователь регистрируется в процессе оформления заказа или через страницу «Моя учетная запись».

Следующий пример должен дать вам представление о том, как создать учетную запись в Salesforce, когда кто-то регистрируется через WooCommerce. Обратите внимание, что код Salesforce API не отображается; Я просто обрисовываю в общих чертах процесс.

<?php // Create Customer's Salesforce Account add_action( 'woocommerce_created_customer', 'create_salesforce_account', 10, 3 ); function create_salesforce_account( $customer_id, $new_customer_data, $password_generated ) { // Get the New Customer's data $username = $new_customer_data['user_login']; $password = $new_customer_data['user_pass']; $email = $new_customer_data['user_email']; $role = $new_customer_data['role']; // Getting the rest of the info for this customer $user = get_user_by( 'id', $customer_id ); // Continue and send the information to Salesforce now } 

Продолжая наш предыдущий пример, вполне естественно, что вы захотите обновить информацию о клиенте в Salesforce, когда клиент редактирует адрес выставления счета или адрес доставки. woocommerce_customer_save_address запускается сразу после того, как любой адрес был отредактирован, и он дает идентификатор пользователя и какой адрес был отредактирован. Обратите внимание, что вы также можете получить любое из полей формы через $_POST .

 <?php // Update Salesforce account with new shipping information add_action( 'woocommerce_customer_save_address', 'update_salesforce_account', 10, 2 ); function update_salesforce_account( $user_id, $load_address ) { // Let's use a Switch statement to know which address we are updating switch ( $load_address ) { case 'billing': // Send billing info to Salesforce break; case 'shipping': // Send shipping info to Salesforce break; } } 

Переопределение заголовков интерфейса, сообщений и описаний

Заголовки разделов, сообщения и описания могут быть легко изменены, если вы знаете, какой фильтр использовать. Эти фильтры позволяют настраивать то, что отображается для клиента, вплоть до последней детали. Вы заметили, что я говорю фильтры, а не действия? Это потому, что WooCommerce не использует действия для переопределения таких значений, как WordPress.

WooCommerce сообщение о покупке купона

woocommerce_checkout_coupon_message отображается только в том случае, если купоны включены в вашем магазине, и пока вы находитесь на странице оформления заказа, он запрашивает код купона. Например: есть купон? Нажмите здесь, чтобы ввести свой код.

WooCommerce Checkout сообщение для входа

woocommerce_checkout_login_message отображается на странице оформления woocommerce_checkout_login_message когда корзина обнаруживает, что вы не вошли в систему, и дает вам возможность войти в систему. Например: постоянный клиент? Нажмите здесь, чтобы войти.

WooCommerce потерял пароль сообщение

woocommerce_lost_password_message отобразится на странице «Моя учетная запись», где вам будет предложено ввести имя пользователя или адрес электронной почты для сброса пароля. Например: Забыли пароль? Пожалуйста, введите ваше имя пользователя или адрес электронной почты. Вы получите ссылку для создания нового пароля по электронной почте.

WooCommerce мой аккаунт мой адрес название

woocommerce_my_account_my_address_title отображается на странице «Моя учетная запись» и по умолчанию может иметь один из двух заголовков. Он немного изменился с «Мои адреса» на «Мой адрес», когда вы настроили доставку только на адрес для выставления счетов, поэтому нужен только один из них. Например: мои адреса или мой адрес.

WooCommerce мой аккаунт мой адрес описание

woocommerce_my_account_my_address_description отображается прямо под заголовком адреса, давая вам краткое объяснение того, для чего будет использоваться адрес (а). Например: по умолчанию на странице оформления заказа будут использоваться следующие адреса.

WooCommerce мой аккаунт мои загрузки название

woocommerce_my_account_my_downloads_title отображается на странице «Моя учетная запись» и задает заголовок раздела загрузок. Например: Доступные загрузки.

WooCommerce мой аккаунт мои заказы название

woocommerce_my_account_my_orders_title отображается на странице «Моя учетная запись» и задает заголовок раздела «Заказы». Например: последние заказы.

Их довольно много, и их использование практически идентично, за исключением имен, конечно. Вот несколько примеров того, как их изменить.

 <?php add_filter( 'woocommerce_checkout_coupon_message', 'override_checkout_coupon_message', 10, 1 ); function override_checkout_coupon_message( $message ) { return __( 'Have a coupon for our store?', 'spyr' ) . ' <a href="#" class="showcoupon">' . __( 'Click here to enter it', 'spyr' ) . '</a>'; } add_filter( 'woocommerce_checkout_login_message', 'override_checkout_login_message', 10, 1 ); function override_checkout_login_message( $message ) { return __('Already have an account with us?', 'spyr' ); } add_filter( 'woocommerce_lost_password_message', 'override_lost_password_message', 10, 1 ); function override_lost_password_message( $message ) { return __( 'Lost your password? Please enter your username or email address.', 'spyr' ); } add_filter( 'woocommerce_my_account_my_address_title', 'override_my_address_title', 10, 1 ); function override_my_address_title( $title ) { return __( 'Your Address', 'spyr' ); } add_filter( 'woocommerce_my_account_my_address_description', 'override_my_address_description', 10, 1 ); function override_my_address_description( $description ) { return __( 'The following addresses will be used on the checkout.', 'spyr' ); } add_filter( 'woocommerce_my_account_my_downloads_title', 'override_my_downloads_title', 10, 1 ); function override_my_downloads_title( $title ) { return __( 'Your Downloads', 'spyr' ); } add_filter( 'woocommerce_my_account_my_orders_title', 'override_my_orders_title', 10, 1 ); function override_my_orders_title( $title ) { return __( 'Your Most Recent Orders', 'spyr' ); } 

Это все на данный момент. Мы только начали изучать то, что находится под капотом WooCommerce, и по мере продвижения через серию статей мы собираемся создавать более сложные модули, которые будут в значительной степени полагаться на использование системы хуков WooCommerce и WordPress для производства того, что мы установили для себя. умы делать.

В следующей статье мы будем работать над реальным сценарием, в котором вы можете предложить бесплатный продукт с любой покупкой, которая соответствует определенным критериям среди других предметов, представляющих интерес.