slug_generator = $slug_generator; } /** * @inheritdoc * @since 0.6 */ public function create(Name $name, Slug $slug) { do_action('aff_shop_template_factory_before_create', $name, $slug); $shop_template = new Shop_Template($name, $slug); $shop_template = apply_filters('aff_shop_template_factory_create', $shop_template); do_action('aff_shop_template_factory_after_create', $shop_template, $name, $slug); return $shop_template; } /** * @inheritdoc * @since 0.8 */ public function create_from_name(Name $name) { $slug = $this->slug_generator->generate_from_name($name); $shop_template = $this->create($name, $slug); return $shop_template; } /** * @inheritdoc * @since 0.9 */ public function create_from_shop(Shop $shop) { $shop_template = $this->create($shop->get_name(), $shop->get_slug()); return $shop_template; } }