/** * Adds variable options to attribute field. * * @param Attribute|Attribute\Variable $attribute Attribute. */ public function addVariableAttributeOptions(Attribute $attribute) { if ($attribute instanceof Attribute\Variable) { /** @var $attribute Attribute|Attribute\Variable */ Forms::checkbox(array('name' => 'product[attributes][' . $attribute->getId() . '][is_variable]', 'id' => 'product_attributes_' . $attribute->getId() . '_variable', 'classes' => array('attribute-options'), 'label' => __('Is for variations?', 'jigoshop'), 'checked' => $attribute->isVariable(), 'size' => 6)); } }
/** * @param Product\Attribute $attribute * @param Product $product */ public function addAttributes($attribute, $product) { if ($attribute instanceof Product\Attribute\Variable && $product instanceof Product\Variable) { /** @var $attribute Product\Attribute|Product\Attribute\Variable */ /** @var $product Product|Product\Variable */ if (isset($_POST['options']) && isset($_POST['options']['is_variable'])) { $attribute->setVariable($_POST['options']['is_variable'] === 'true'); } if ($attribute->isVariable()) { foreach ($product->getVariations() as $variation) { /** @var $variation VariableProduct\Variation */ if (!$variation->hasAttribute($attribute->getId())) { $variableAttribute = new VariableProduct\Attribute(); $variableAttribute->setAttribute($attribute); $variableAttribute->setVariation($variation); $variation->addAttribute($variableAttribute); } } } } }