

PersoNailit adds a “PersoNailit” tab to the WooCommerce product data panel,
letting store owners attach one or more personalization elements to any
simple or variable product:
Each element can be marked as required. Submitted values are validated on
add-to-cart, shown in the cart and stored as order item meta, so store
owners see exactly what the customer requested on every order.
Available on simple products only (see the FAQ below for why). When a
product has two or more Color/Box elements, PersoNailit can generate every
combination of their values automatically (“Generate Combinations”). Each
combination can then be given its own price, sale price, image, stock
status, weight and dimensions — overriding the individual color/box values
for that specific pairing. Bulk actions are available to set price, stock
status, weight or dimensions across several combinations at once.
Colors, boxes and combinations can each be marked as out of stock. The
storefront automatically blocks “Add to cart” and shows a message when the
customer’s current selection (or active combination) is unavailable.
A product’s configured elements can be saved as a reusable “set” from the
product panel, then added to any other product in one click — useful when
several products share the same personalization style.
Two admin screens (under the main PersoNailit menu) let store owners:
Uploaded files are stored in a temporary, .htaccess-protected directory
until checkout completes, then moved to a final protected directory and
attached to the order. Unclaimed temporary uploads are deleted automatically
after 3 days.
Optionally (Global Settings “Shop Listing Swatches”), each product card in
the shop and category pages previews its personalization options (colors,
boxes…) over the product image. Picking one changes the card’s image and
price, and the card’s links open the product with those options already
chosen. On phones, a small chip opens a panel from the bottom of the screen
with every option and an “Add to cart” button, while the product card itself
stays highlighted (its height is set in “Phone panel height”).
Optionally (Global Settings “Mobile Product Panel”), on phones the
personalization box stays within reach on the product page: docked at the
bottom of the screen while the customer looks at the product images (with
the price and an “Add to cart” shortcut), minimizable to a
slim bar, and settling back into its place when they scroll down to it. Its
open height is set in “Open height”; it shares its look (bar, accent color,
cart button) with the shop’s phone panel.
Developers can register additional element types without modifying plugin
files, by dropping a class implementing PersoNailit_Element_Interface
into includes/elements/{type}/class-element-{type}.php, or by hooking into
the personailit_elements filter to register/remove elements
programmatically. See docs/hooks.md for the full list of available hooks.