• 06-12-2020, 02:38:26
    #1
    Merhaba woocommerce sayfasında, sadece admin'in görebileceği, SKU benzeri bir ürün kodu nasıl ekleyebilirim. Güvenli olması önemli.

    SKU nun kalması gerekiyor,
    Şirket içi organizasyon için, SKU nun bir versiyonun gizli bir şekilde kalması da gerekiyor.

    Yani ürüne iki adet SKU ekleyeceğiz biri açık biri gizli
  • 06-12-2020, 03:05:32
    #2
    özel alan ekleyerek yapabilirsiniz. şu anda meşgulüm fakat mesajım bulunsun yarın yazayım hocam.
  • 06-12-2020, 10:03:23
    #3
    https://www.businessbloomer.com/wooc...-product-page/

    Bu kancaları kullanarak ekleyebilirsiniz. Eklediğiniz kodu if ( current_user_can( 'administrator' ) ) {} kodu içine alırsanız sadece adminler görer.
    • OnurunveR
    OnurunveR bunu beğendi.
    1 kişi bunu beğendi.
  • 06-12-2020, 20:31:15
    #4
    OnurunveR adlı üyeden alıntı: mesajı görüntüle
    Merhaba woocommerce sayfasında, sadece admin'in görebileceği, SKU benzeri bir ürün kodu nasıl ekleyebilirim. Güvenli olması önemli.

    SKU nun kalması gerekiyor,
    Şirket içi organizasyon için, SKU nun bir versiyonun gizli bir şekilde kalması da gerekiyor.

    Yani ürüne iki adet SKU ekleyeceğiz biri açık biri gizli
    Selamlar tekrar, umarım işinizi görür.

    function ikinci_sku() {
      $args = array(
        'label' => __( 'İkinci SKU', 'woocommerce' ),
        'placeholder' => __( 'SKU giriniz', 'woocommerce' ),
        'id' => 'gizli_sku',
      );
      woocommerce_wp_text_input( $args );
    }
    add_action( 'woocommerce_product_options_sku', 'ikinci_sku' );
    
    function meta_kaydet( $post_id ) {
      $sku = isset( $_POST[ 'gizli_sku' ] ) ? sanitize_text_field( $_POST[ 'gizli_sku' ]):'';
      $product = wc_get_product( $post_id );
      $product->update_meta_data( 'gizli_sku', $sku );
      $product->save();
    }
    
    add_action( 'woocommerce_process_product_meta', 'meta_kaydet' );
  • 06-12-2020, 23:38:26
    #5
    d3nnis adlı üyeden alıntı: mesajı görüntüle
    Selamlar tekrar, umarım işinizi görür.

    function ikinci_sku() {
      $args = array(
        'label' => __( 'İkinci SKU', 'woocommerce' ),
        'placeholder' => __( 'SKU giriniz', 'woocommerce' ),
        'id' => 'gizli_sku',
      );
      woocommerce_wp_text_input( $args );
    }
    add_action( 'woocommerce_product_options_sku', 'ikinci_sku' );
    
    function meta_kaydet( $post_id ) {
      $sku = isset( $_POST[ 'gizli_sku' ] ) ? sanitize_text_field( $_POST[ 'gizli_sku' ]):'';
      $product = wc_get_product( $post_id );
      $product->update_meta_data( 'gizli_sku', $sku );
      $product->save();
    }
    
    add_action( 'woocommerce_process_product_meta', 'meta_kaydet' );
    Kesinlikle iş gördü, çok temiz ve güzel oldu, ikinci bir SKU veya Barkod eklemek için harici eklentiler kasmaya gerek kalmadı eline sağlık dostum.
  • 06-12-2020, 23:45:15
    #6
    Bu durumda iki alternatifimiz oldu, daha sonra ihtiyaç duyabilecekler için yazayım.
    wordpress / woocommerce için
    Aşağıdaki kodları temanın (mümkünse child) functions.php sine ekliyoruz.

    1. Kod ürünün genel kısmına ilave satır ekler
    // Serial Number Admin: Display custom Field ------------------------------------------------------------------
    add_action( 'woocommerce_product_options_general_product_data', 'product_options_general_product_data_add_field' );function product_options_general_product_data_add_field() {    global $post;    echo '<div class="options_group">';
        woocommerce_wp_text_input( array(        'id'      => '_serial_number',        'label'   => __( 'Serial Number', 'woocommerce' ),    ) );
        echo '</div>';}
    
    // Serial Number Admin : Save custom Fieldadd_action( 'woocommerce_process_product_meta', 'product_options_general_product_data_save_field' );function product_options_general_product_data_save_field( $post_id ){    if( isset( $_POST['_serial_number'] ) )        update_post_meta( $post_id, '_serial_number', esc_attr( $_POST['_serial_number'] ) );}
    
    // Order items: Save product "Serial Number" as hidden order item meta dataadd_action('woocommerce_checkout_create_order_line_item', 'save_file_type_as_order_item_meta', 20, 4);function save_file_type_as_order_item_meta($item, $cart_item_key, $values, $order) {    if ( $serial_number = $values['data']->get_meta('_serial_number') ) {        $item->update_meta_data( '_serial_number', $serial_number ); // Save as order item (visble on admin only)    }}

    2. Kod ürünün Stok kısmına SKU nun altına ikinci bir SKU ekler
    function ikinci_sku() {  $args = array(    'label' => __( 'İkinci SKU', 'woocommerce' ),    'placeholder' => __( 'SKU giriniz', 'woocommerce' ),    'id' => 'gizli_sku',  );  woocommerce_wp_text_input( $args );}add_action( 'woocommerce_product_options_sku', 'ikinci_sku' ); function meta_kaydet( $post_id ) {  $sku = isset( $_POST[ 'gizli_sku' ] ) ? sanitize_text_field( $_POST[ 'gizli_sku' ]):'';  $product = wc_get_product( $post_id );  $product->update_meta_data( 'gizli_sku', $sku );  $product->save();} add_action( 'woocommerce_process_product_meta', 'meta_kaydet' );
    İkinci kod için @d3nnis teşekkürler...