Проверьте атрибут WooCommerce

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

Любой совет, как это сделать? Или что-то вроде этого уже есть в Woo Commerce? Или что может быть самым простым способом сделать это?

Solutions Collecting From Web of "Проверьте атрибут WooCommerce"

Как бы то ни было, я только что написал об этом вчера, чтобы добавить флажок подписки на список рассылки . Ключевыми моментами являются:

  • посмотрите учебник WooCommerce
  • woocommerce_checkout_fields – это крючок фильтра, который позволяет добавлять или изменять какие поля отображаются в форме проверки
  • woocommerce_checkout_update_order_meta – это действие, которое позволяет вам сохранять новые поля
  • woocommerce_email_order_meta_keys – это фильтр, который позволяет добавлять ваши новые поля в письма с подтверждением
  • имя, которое вы выбрали для сохранения метаданных, будет его ярлыком в письме

Вот код, который я использовал:

class WooSubscribeCheckbox { // add hooks into WooCommerce public static function run() { add_filter('woocommerce_checkout_fields', array(__CLASS__, 'filterWooCheckoutFields')); add_action('woocommerce_checkout_update_order_meta', array(__CLASS__, 'actionWooCheckoutUpdateOrderMeta')); add_filter('woocommerce_email_order_meta_keys', array(__CLASS__, 'filterWooEmailOrderMetaKeys')); } /** * add custom fields to WooCommerce checkout * @param array fields * @return array */ public static function filterWooCheckoutFields($fields) { global $woocommerce; // add field at end of billing fields section $fields['billing']['our_mailing_subscribe'] = array( 'type' => 'checkbox', 'label' => 'Subscribe to mailing list?', 'placeholder' => 'Subscribe to mailing list', 'required' => false, 'class' => array(), 'label_class' => array(), ); return $fields; } /** * save custom order fields * @param int $order_id */ public static function actionWooCheckoutUpdateOrderMeta($order_id) { if (isset($_POST['our_mailing_subscribe'])) { update_post_meta($order_id, 'Subscribe to mailing list', stripslashes($_POST['our_mailing_subscribe'])); } } /** * add our custom fields to WooCommerce order emails * @param array $keys * @return array */ public static function filterWooEmailOrderMetaKeys($keys) { $keys[] = 'Subscribe to mailing list'; return $keys; } } WooSubscribeCheckbox::run(); 

Плагин заполнен крючками и содержит обширную документацию .

Из этой ссылки: Учебное пособие – настройка полей проверки с помощью перехватчиков и фильтров .

Как загружаются поля проверки в WooCommerce?

Поля для проверки (биллинга и доставки) поступают из класса стран ( class-wc-countries.php ) и функции get_address_fields это так, что настройки локали применяются к полям, позволяющим WooCommerce включать / отключать поля на основе местоположения пользователей ,

Прежде чем возвращать поля, WC будет запускать поля через фильтр. Это позволяет редактировать их сторонние плагины и темы (и собственный код) .

мой акцент

Если вы не хотите его кодировать самостоятельно. Здесь есть хороший плагин: http://terrytsang.com/shop/shop/woocommerce-custom-checkout-options/