WC_Settings_Accounts::output
Output the HTML for the settings.
Метод класса: WC_Settings_Accounts{}
Хуков нет.
Возвращает
null. Ничего (null).
Использование
$WC_Settings_Accounts = new WC_Settings_Accounts(); $WC_Settings_Accounts->output();
Код WC_Settings_Accounts::output() WC Settings Accounts::output WC 10.3.4
public function output() {
parent::output();
// The following code toggles disabled state on the account options based on other values.
wc_enqueue_js(
'
// Move tooltips to label element. This is not possible through the settings field API so this is a workaround
// until said API is refactored.
document.querySelectorAll("input[disabled-tooltip]").forEach(function(element) {
const label = element.closest("label");
label.setAttribute("disabled-tooltip", element.getAttribute("disabled-tooltip"));
});
// This handles settings that are enabled/disabled based on other settings.
const checkboxes = [
document.getElementById("woocommerce_enable_signup_and_login_from_checkout"),
document.getElementById("woocommerce_enable_myaccount_registration"),
document.getElementById("woocommerce_enable_delayed_account_creation"),
document.getElementById("woocommerce_enable_signup_from_checkout_for_subscriptions")
];
const inputs = [
document.getElementById("woocommerce_registration_generate_username"),
document.getElementById("woocommerce_registration_generate_password")
];
checkboxes.forEach(cb => cb && cb.addEventListener("change", function() {
const isChecked = checkboxes.some(cb => cb && cb.checked);
inputs.forEach(input => {
if ( ! input ) {
return;
}
input.disabled = !isChecked;
});
}));
checkboxes[0].dispatchEvent(new Event("change")); // Initial state
// Tracks for customize link.
if ( typeof window?.wcTracks?.recordEvent === "function" ) {
const customizeLink = document.querySelector("a.delayed-account-creation-customize-link");
if ( customizeLink ) {
customizeLink.addEventListener("click", function() {
window.wcTracks.recordEvent("delayed_account_creation_customize_link_clicked");
});
}
}
'
);
// If the checkout block is not default, delayed account creation is always disabled. Otherwise its based on other settings.
if ( CartCheckoutUtils::is_checkout_block_default() ) {
wc_enqueue_js(
'
// Guest checkout should toggle off some options.
const guestCheckout = document.getElementById("woocommerce_enable_guest_checkout");
if ( guestCheckout ) {
guestCheckout.addEventListener("change", function() {
const isChecked = this.checked;
const input = document.getElementById("woocommerce_enable_delayed_account_creation");
if ( ! input ) {
return;
}
input.disabled = !isChecked;
});
guestCheckout.dispatchEvent(new Event("change")); // Initial state
}
'
);
}
}