num = $num; $this->id = 'extra_field_' . $this->num; $this->desc = $this->get_desc(); parent::__construct(); } /** * get_desc. * * @version 4.0.0 * @since 4.0.0 * * @todo (dev) this is (almost) duplicated in `Alg_WC_EAN_Extra_Field::get_name()` */ function get_desc() { $name = get_option( 'alg_wc_ean_extra_field_name', array() ); return ( isset( $name[ $this->num ] ) && '' !== $name[ $this->num ] ? $name[ $this->num ] : sprintf( __( 'Extra field #%d', 'ean-for-woocommerce' ), $this->num ) ); } /** * get_settings. * * @version 4.7.6 * @since 4.0.0 */ function get_settings() { $settings = array( array( 'title' => sprintf( __( '%s Options', 'ean-for-woocommerce' ), $this->desc ), 'type' => 'title', 'id' => 'alg_wc_ean_extra_field_' . $this->num . '_options', ), array( 'title' => $this->get_desc(), 'desc' => '' . __( 'Enable field', 'ean-for-woocommerce' ) . '', 'desc_tip' => $this->pro_msg( 'enable this field' ), 'type' => 'checkbox', 'id' => "alg_wc_ean_extra_field_enabled[{$this->num}]", 'default' => 'no', 'custom_attributes' => apply_filters( 'alg_wc_ean_settings', array( 'disabled' => 'disabled' ) ), ), array( 'title' => __( 'Title', 'ean-for-woocommerce' ), 'desc' => sprintf( __( 'For example: %s', 'ean-for-woocommerce' ), 'MPN' ), 'type' => 'text', 'id' => "alg_wc_ean_extra_field_name[{$this->num}]", 'default' => sprintf( __( 'Extra field #%d', 'ean-for-woocommerce' ), $this->num ), 'custom_attributes' => array( 'required' => 'required' ), ), array( 'title' => __( 'Meta key', 'ean-for-woocommerce' ), 'desc' => sprintf( __( 'For example: %s', 'ean-for-woocommerce' ), 'mpn' ), 'type' => 'text', 'id' => "alg_wc_ean_extra_field_key[{$this->num}]", 'default' => sprintf( 'extra_field_%d', $this->num ), 'custom_attributes' => array( 'required' => 'required' ), ), array( 'title' => __( 'Admin product search', 'ean-for-woocommerce' ), 'desc' => __( 'Enable', 'ean-for-woocommerce' ), 'id' => "alg_wc_ean_extra_field_backend_search[{$this->num}]", 'desc_tip' => __( 'This will enable searching by the field in admin area.', 'ean-for-woocommerce' ), 'default' => 'no', 'type' => 'checkbox', ), array( 'title' => __( 'Single product page', 'ean-for-woocommerce' ), 'desc' => __( 'Enable', 'ean-for-woocommerce' ), 'desc_tip' => __( 'This will show the field on single product page on frontend.', 'ean-for-woocommerce' ), 'id' => "alg_wc_ean_extra_field_frontend[{$this->num}]", 'default' => 'yes', 'type' => 'checkbox', ), array( 'title' => __( 'Search', 'ean-for-woocommerce' ), 'desc' => __( 'Enable', 'ean-for-woocommerce' ), 'desc_tip' => __( 'This will enable searching by the field on the frontend.', 'ean-for-woocommerce' ), 'id' => "alg_wc_ean_extra_field_frontend_search[{$this->num}]", 'default' => 'no', 'type' => 'checkbox', ), array( 'title' => __( 'Product structured data', 'ean-for-woocommerce' ), 'desc' => __( 'Enable', 'ean-for-woocommerce' ), 'id' => "alg_wc_ean_extra_field_structured_data_product[{$this->num}]", 'desc_tip' => __( 'This will add the field to the product structured data, e.g., for Google Search Console.', 'ean-for-woocommerce' ), 'default' => 'yes', 'type' => 'checkbox', ), array( 'type' => 'sectionend', 'id' => 'alg_wc_ean_extra_field_' . $this->num . '_options', ), ); return $settings; } } endif;